Python中的随机林[r2_分数错误]

2024-04-28 14:52:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉机器学习和Python。我试图建立一个随机森林模型来预测水泥强度。 有两个.csv文件:train_data.csvtest_data.csv

这就是我所做的。我试图预测这里的r2_score

df=pd.read_csv("train_data(1).csv")
X=df.drop('strength',axis=1)
y=df['strength']
model=RandomForestRegressor()
model.fit(X,y)
X_test=pd.read_csv("test_data.csv")
y_pred=model.predict(X_test)
acc_R=metrics.r2_score(y,y_pred)
acc_R

这里的问题是yy_pred的形状不同。所以我得到了这个错误:

ValueError: Found input variables with inconsistent numbers of samples: [721, 309]

我如何纠正这个问题?有人能解释一下我做错了什么吗


Tags: csvtest机器dfreaddatamodel森林
2条回答
df_train = pd.read_csv("train_data(1).csv")
X_train = df.drop('strength',axis=1)
y_train = df['strength']
model=RandomForestRegressor()
model.fit(X_train,y_train)
df_test = pd.read_csv("test_data.csv")
X_test = df.drop('strength',axis=1) # if your test data consists of 'strength' 
y_test = df['strength'] # if your test data consists of 'strength' 
y_pred = model.predict(X_test)
acc_R = metrics.r2_score(y_test,y_pred)
acc_R

您需要将y_predy_test进行比较。不是用于训练模型的y

acc_R=metrics.r2_score(y_test,y_pred)

test_data.csv中应该有另一个y_测试标签列表

请尝试以下操作:

df=pd.read_csv("train_data(1).csv")
X=df.drop('strength',axis=1)
y=df['strength']
model=RandomForestRegressor()
model.fit(X,y)
df1=pd.read_csv("test_data.csv") # we read the csv data from test
X_test=df1.drop('strength',axis=1) # get the fields that we will predict
y_test=df1['strength'] # get the correct labels for X_test
y_pred=model.predict(X_test) # get the predicted results
acc_R=metrics.r2_score(y_test,y_pred) # compare
acc_R

相关问题 更多 >