簡體   English   中英

如何在 sklearn RandomForestRegressor 中正確預測?

[英]How to predict correctly in sklearn RandomForestRegressor?

我正在為我的學校項目開展一個大數據項目。 我的數據集如下所示: https : //github.com/gindeleo/climate/blob/master/GlobalTemperatures.csv

我正在嘗試預測“LandAverageTemperature”的下一個值。

首先,我已將 csv 導入到 Pandas 並將其命名為“df1”的 DataFrame。

在 sklearn 中的第一次嘗試中出錯后,我將“dt”列從字符串轉換為 datetime64,然后添加了一個名為“year”的列,該列僅顯示日期值中的年份。-它可能是錯誤的-

df1["year"] = pd.DatetimeIndex(df1['dt']).year

完成所有這些之后,我准備了用於回歸的數據並調用了 RandomForestReggressor:

landAvg = df1[["LandAverageTemperature"]]
year = df1[["year"]]

from sklearn.ensemble import RandomForestRegressor

rf_reg=RandomForestRegressor(n_estimators=10,random_state=0)
rf_reg.fit(year,landAvg.values.ravel())
print("Random forest:",rf_reg.predict(landAvg))

我運行了代碼,我看到了這個結果:

Random forest: [9.26558115 9.26558115 9.26558115 ... 9.26558115 9.26558115 9.26558115]

我沒有收到任何錯誤,但我認為結果不正確-結果與您所看到的完全相同-。 此外,當我想獲得下一個 10 年的預測時,我不知道該怎么做。 使用此代碼我只得到 1 個結果。 你能幫我改進我的代碼並獲得正確的結果嗎? 在此先感謝您的幫助。

僅用年份來預測溫度是不夠的。 您也需要使用月份數據。 這是初學者的工作示例:

import pandas as pd
from sklearn.ensemble import RandomForestRegressor
df = pd.read_csv('https://raw.githubusercontent.com/gindeleo/climate/master/GlobalTemperatures.csv', usecols=['dt','LandAverageTemperature'], parse_dates=['dt'])
df = df.dropna()
df["year"] = df['dt'].dt.year
df["month"] = df['dt'].dt.month
X = df[["month", "year"]]
y = df["LandAverageTemperature"]
rf_reg=RandomForestRegressor(n_estimators=10,random_state=0)
rf_reg.fit(X, y)
y_pred = rf_reg.predict(X)
df_result = pd.DataFrame({'year': X['year'], 'month': X['month'], 'true': y, 'pred': y_pred})
print('True values and predictions')
print(df_result)
print('Feature importances', list(zip(X.columns, rf_reg.feature_importances_)))

這是輸出:

True values and predictions
      year  month    true     pred
0     1750      1   3.034   2.2944
1     1750      2   3.083   2.4222
2     1750      3   5.626   5.6434
3     1750      4   8.490   8.3419
4     1750      5  11.573  11.7569
...    ...    ...     ...      ...
3187  2015      8  14.755  14.8004
3188  2015      9  12.999  13.0392
3189  2015     10  10.801  10.7068
3190  2015     11   7.433   7.1173
3191  2015     12   5.518   5.1634

[3180 rows x 4 columns]
Feature importances [('month', 0.9543059863177156), ('year', 0.045694013682284394)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM