teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

ソースコードについて追記しました。

2021/08/30 13:12

投稿

xtail
xtail

スコア2

title CHANGED
File without changes
body CHANGED
@@ -60,10 +60,54 @@
60
60
  ### 該当のソースコード
61
61
 
62
62
  ```ここに言語名を入力
63
+ """ライブラリのインポート"""(追記)
64
+ #データ解析用ライブラリ
65
+ import pandas as pd
66
+ import numpy as np
67
+
68
+ #データ可視化ライブラリ
69
+ import matplotlib.pyplot as plt
70
+ import seaborn as sns
71
+
72
+ #RandomForestライブラリ
73
+ from sklearn.ensemble import RandomForestRegressor as RFR
74
+ from sklearn.model_selection import GridSearchCV
75
+
76
+ #訓練データとモデル評価用データに分けるライブラリ
77
+ from sklearn.model_selection import train_test_split
78
+ #-------------------------------------------------------------
79
+
63
80
  #データの読み込み
64
81
  concrete_data = pd.read_csv(r'C:データ',engine='python')
65
82
  print(concrete_data.head())#読み込みの確認
66
83
 
84
+ #データを訓練用とモデル評価用に分割
85
+ train_set, test_set = train_test_split(concrete_data, test_size=0.2, random_state=4)
86
+ print(len(train_set))
87
+ print(len(test_set))
88
+
89
+ #データの変数 [A,B,C,D,E,F,G,H,I,J,K,L,M,ID]
90
+  
91
+
92
+ #訓練データを説明変数データ(X_train)と目的変数データ(y_train)に分割
93
+ X_train = train_set.drop(['A','D','E','F','H','L','M','ID'], axis=1)
94
+ y_train = train_set['M']
95
+
96
+
97
+ #モデル評価用データを説明変数データ(X_train)と目的変数データ(y_train)に分割
98
+ # All
99
+ #X_test = test_set.drop(['A','H','L','M','ID'], axis=1)
100
+ # Slim
101
+ X_test = test_set.drop(['A','D','E','F','H','L','M','ID'], axis=1)
102
+ # non-cyc
103
+ #X_test = test_set.drop(['A','H','J','K','L','M','ID'], axis=1)
104
+
105
+ y_test = test_set['M']
106
+
107
+ #分割データの確認
108
+ print(X_train.head())
109
+
110
+
67
111
  #モデル構築  RandomForest
68
112
 
69
113
  rf = RFR(n_estimators=100, #フォレスト内のツリーの数、デフォルト=100
@@ -81,7 +125,13 @@
81
125
  verbose=True, #詳細
82
126
  warm_start=False) #前の呼び出しの解を再利用、デフォルト=False
83
127
 
128
+ #モデルフィット
129
+ rf_train = rf.fit(X_train,y_train)
130
+ rf_eval = rf.fit(X_test, y_test)
131
+ params = {'metric': 'rmse',
132
+ 'max_depth' : 9}
84
133
 
134
+
85
135
  #予測値算出
86
136
  y_pred = rf.predict(X_test)
87
137
 

5

特徴重要度の可視化についての情報を追記しました。

2021/08/30 13:12

投稿

xtail
xtail

スコア2

title CHANGED
File without changes
body CHANGED
@@ -110,4 +110,8 @@
110
110
  ### 補足情報
111
111
  Spyder(Python3.8)を使っています。
112
112
  データの分割などは省略しています。
113
- 一応、①についてはできているとは思うのですが、モデル自体正しいのか不安です。
113
+ 一応、①についてはできているとは思うのですが、モデル自体正しいのか不安です。
114
+ ![![イメージ説明](a9fb8f782dda10ad67c137d03b18e0de.png)
115
+ これが現在出ているグラフです。
116
+ ![イメージ説明](e45144518168bdf7c3b060b6d3f97f47.png)
117
+ 理想的にはこのようにy軸に説明変数を出したいです。

4

予測値についての情報を追記しました。

2021/08/30 12:14

投稿

xtail
xtail

スコア2

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,10 @@
11
11
  ①についてはできたのですが②と③についてはできていないのでお力を貸してください。
12
12
  初心者で勉強不足ですが宜しくお願いします。
13
13
 
14
+ 追記
15
+ ②についても解決したかもしれません。
14
16
 
17
+
15
18
  ### 発生している問題・エラーメッセージ
16
19
 
17
20
  ```

3

予測値についての情報を追記しました。

2021/08/30 12:06

投稿

xtail
xtail

スコア2

title CHANGED
File without changes
body CHANGED
@@ -19,6 +19,19 @@
19
19
  [ 0.38222 -1.58526 0.34684 ... 2.14196 1.05836 1.01766]
20
20
  と出るのでできれば一つの予測値にしたいです。
21
21
 
22
+ 追記
23
+ #予測値算出
24
+ y_pred = rf.predict(X_test)
25
+ #予測値の平均値
26
+ y_pred_true = sum(y_pred)/len(y_pred)
27
+
28
+ print(y_pred)
29
+ print(y_pred_true)
30
+ に変更しました。
31
+
32
+ >[ 0.38222 -1.58526 0.34684 ... 2.14196 1.05836 1.01766]
33
+ >0.007574019218924746
34
+ -------------------------------------------------------------
22
35
  特徴重要度の可視化について
23
36
  KeyError: 'feature_names'
24
37
  と出て、できていない状況です。
@@ -89,6 +102,8 @@
89
102
  データ読み込みの際にnamesで列名をつけることができると拝見したので、feature_namesを定義して、concrete_data = pd.read_csv(r'C:データ',engine='python',names=feature_names)で読み込んでみましたがだめでした。
90
103
  そもそもfeature importanceのコードはほぼコピペなので適してるかもわかりません。
91
104
 
105
+ ②予測値の可視化について、y_predの平均値を取ることで解決したかもしれません。追記します。
106
+
92
107
  ### 補足情報
93
108
  Spyder(Python3.8)を使っています。
94
109
  データの分割などは省略しています。

2

エラーメッセージの全文を追加しました。

2021/08/30 12:04

投稿

xtail
xtail

スコア2

title CHANGED
File without changes
body CHANGED
@@ -25,6 +25,16 @@
25
25
 
26
26
  追記
27
27
 
28
+ The above exception was the direct cause of the following exception:
29
+
30
+ Traceback (most recent call last):
31
+
32
+ File "Cモデル名", line 150, in <module>
33
+ plt.xticks(x, concrete_data['feature_names'])
34
+
35
+ File "C:\Users\Owner\anaconda3\lib\site-packages\pandas\core\frame.py", line 3455, in __getitem__
36
+ indexer = self.columns.get_loc(key)
37
+
28
38
  File "C:\Users\Owner\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
29
39
  raise KeyError(key) from err
30
40
 

1

エラーメッセージの全文を追加しました。

2021/08/30 11:53

投稿

xtail
xtail

スコア2

title CHANGED
File without changes
body CHANGED
@@ -22,6 +22,13 @@
22
22
  特徴重要度の可視化について
23
23
  KeyError: 'feature_names'
24
24
  と出て、できていない状況です。
25
+
26
+ 追記
27
+
28
+ File "C:\Users\Owner\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
29
+ raise KeyError(key) from err
30
+
31
+ KeyError: 'feature_names'
25
32
  ```
26
33
 
27
34
  ### 該当のソースコード