我想根据年份将我的数据集拆分为训练和测试数据集。想法是将 2009-2017 年的行放在训练数据集中,将 2018 年的数据放在测试数据集中。在大多数情况下,拆分数据集很容易,但我的模型引发了很多索引问题。
X = ((df[df['Year'] < 2018]))
X_train = np.array(X.drop(['Usage'], 1))
X_test = np.array(X['Usage'])
y =((df[df['Year'] > 2017]))
y_train = np.array(y.drop(['Usage'], 1))
y_test = np.array(y['Usage'])
这就是我计划拆分数据的方式。使用列是我的预测列,包含连续值。应用一个简单的 RandomForestRegressor() 给了我这个错误作为回报
ValueError: Number of labels=14495 does not match number of samples=382772
aditya 我的回归模型非常基本,但我以任何方式附加代码。X 中传递的列如下: X= [Cust_Id', 'Usage', 'Plan_Group', 'Contract_Type', 'Cust_Status','Premise_Zip', 'Year', 'Month']
model = RandomForestRegressor()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# evaluate predictions
print(model.score(X_test, y_test))
# accuracy = accuracy_score(y_test, (y_pred < 0.5).astype(int))