随机森林精度

2024-05-13 09:58:34 发布

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

我想用randomforest来预测用电量。在对数据进行调整后,最新状态如下

X=df[['Temp(⁰C)','Araç Sayısı (adet)','Montaj V362_WH','Montaj V363_WH','Montaj_Temp','avg_humidity']]

X.head(15)

输出:

^{pr2}$

输出:

    Montaj_ET_kWh/day
0   11951.0
1   41821.0
2   42534.0
3   14537.0
4   41305.0
5   42295.0
6   44923.0
7   44279.0
8   45752.0
9   44432.0
10  25786.0
11  42203.0
12  40676.0
13  39980.0
14  39404.0

   X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.30, random_state=None)

   clf = RandomForestRegressor(n_estimators=10000, random_state=0, n_jobs=-1)
   clf.fit(X_train, y_train['Montaj_ET_kWh/day'])
   for feature in zip(feature_list, clf.feature_importances_):
        print(feature)

输出

  ('Temp(⁰C)', 0.11598075020423881)
  ('Araç Sayısı (adet)', 0.7047301384616493)
  ('Montaj V362_WH', 0.04065706901940535)
  ('Montaj V363_WH', 0.023077554218712878)
  ('Montaj_Temp', 0.08082006262985514)
  ('avg_humidity', 0.03473442546613837)


 sfm = SelectFromModel(clf, threshold=0.10)
 sfm.fit(X_train, y_train['Montaj_ET_kWh/day'])

 for feature_list_index in sfm.get_support(indices=True):
      print(feature_list[feature_list_index])

输出:

  Temp(⁰C)
  Araç Sayısı (adet)

 X_important_train = sfm.transform(X_train)
 X_important_test = sfm.transform(X_test)

 clf_important = RandomForestRegressor(n_estimators=10000, random_state=0, n_jobs=-1)
 clf_important.fit(X_important_train, y_train)
 y_test=y_test.values
 y_pred = clf.predict(X_test)
 y_test=y_test.reshape(-1,1)
 y_pred=y_pred.reshape(-1,1)
 y_test=y_test.ravel()
 y_pred=y_pred.ravel()
 label_encoder = LabelEncoder()
 y_pred = label_encoder.fit_transform(y_pred)
 y_test = label_encoder.fit_transform(y_test)

 accuracy_score(y_test, y_pred)

输出:

 0.010964912280701754

我不知道为什么准确度太低了,知道我哪里出错了吗


Tags: testtransformtraintempfeaturelistfitsay
1条回答
网友
1楼 · 发布于 2024-05-13 09:58:34

你的错误是,你在一个回归设置中要求准确度(一个分类度量),这是无意义的。在

accuracy_scoredocumentation开始(加上强调):

sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)

Accuracy classification score.

检查scikitlearn中提供的list of metrics以获得合适的回归度量(在这里您还可以确认准确度仅用于分类);有关更多详细信息,请参阅Accuracy Score ValueError: Can't Handle mix of binary and continuous target中的答案

相关问题 更多 >