【问题标题】:Random Forest In Python [Error in r2_score]Python 中的随机森林 [r2_score 中的错误]
【发布时间】:2020-09-22 17:04:51
【问题描述】:

我是机器学习和 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]

我该如何纠正这个问题?有人可以向我解释我做错了什么吗?

【问题讨论】:

    标签: python machine-learning scikit-learn random-forest


    【解决方案1】:

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

    acc_R=metrics.r2_score(y_test,y_pred)
    

    在 test_data.csv 中应该有另一个 y_test 的标签列表。

    尝试以下方法:

    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
    

    【讨论】:

    • train.csv 有 9 列包括强度,而 test.csv 数据只有 8 列不包括强度。那么 y_test 会是什么呢?
    • @Carol,我用 cmets 更新了我的答案。这应该可以帮助您使其正常工作。
    【解决方案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
    

    【讨论】:

    • 如果我的测试数据没有强度怎么办?那我该如何计算分数和有效值呢?
    • 你可以,t。您需要将您的预测数据与某些东西(在您的情况下为 y_test)进行比较。在训练和测试过程中,您应该在数据集中拥有这些数据。当您对模型感到满意并准备好部署时,您只能使用 X_train 数据作为输入。
    猜你喜欢
    • 2015-05-10
    • 2016-05-15
    • 2018-04-10
    • 2018-07-15
    • 2013-06-26
    • 2016-10-26
    • 2013-12-03
    • 2018-09-15
    • 2021-05-29
    相关资源
    最近更新 更多