我希望能够预测以下数据集死刑的上升/下降 这是1976年美国死刑数据,见:https://www.kaggle.com/usdpic/execution-database。 我想让Y轴显示多年来死亡惩罚的数量,用不同的颜色显示不同的方法,x轴显示1999年以后死亡惩罚的数量 这是到目前为止我的代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
df['Date'] = pd.to_datetime(df['Date'])
res = df[~(df['Date'] < '1999-01-01')]
print(res)
Count = res['Date'].value_counts()
print(Count)
time= df['Date'] = pd.to_datetime(df['Date'])
df['Date']=df['Date'].map(dt.datetime.toordinal)
print (time)
x = np.array(time)
y = np.array(Count)
xtrain, xtest, ytrain, ytest = train_test_split(x,y,test_size=1/3, random_state=0)
但我得到了一个错误:
ValueError: Found input variables with inconsistent numbers of samples: [1442, 834]
听起来你想要的是重塑你的数据,这样你就有了每个“方法”的时间序列,然后你可以在预测模型中使用它。可能值得指出的是,“方法”的分布确实是倾斜的(值从1999年起),因此很难/不可能预测其中的大多数:
下面是一个解决方案,它将帮助您重塑数据,以获得每个“方法”的时间序列数据(我在最后添加了更多的解释):
我们可以检查数据的新形状是否为我们提供了正确的“方法”计数数:
解释
相关问题 更多 >
编程相关推荐