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

質問編集履歴

2

文法修正

2020/12/02 13:57

投稿

kusegasugoi0221
kusegasugoi0221

スコア11

title CHANGED
File without changes
body CHANGED
@@ -140,4 +140,22 @@
140
140
 
141
141
  if __name__ == "__main__":
142
142
  main()
143
+ ```
144
+
145
+ ```ここに言語を入力
146
+ Ypred [1 1 1 ... 6 6 6]
147
+
148
+ Ytest
149
+ 384 1
150
+ 385 1
151
+ 386 1
152
+ 387 1
153
+ 388 1
154
+ ..
155
+ 7675 8
156
+ 7676 8
157
+ 7677 8
158
+ 7678 8
159
+ 7679 8
160
+ Name: category, Length: 1536, dtype: in
143
161
  ```

1

改善

2020/12/02 13:57

投稿

kusegasugoi0221
kusegasugoi0221

スコア11

title CHANGED
File without changes
body CHANGED
@@ -23,4 +23,121 @@
23
23
  print(precision_score(Y_test, Y_pred,average=’micro’))
24
24
  ^
25
25
  SyntaxError: invalid character in identifier
26
+ ```
27
+
28
+ コード本文です。
29
+ ```ここに言語を入力
30
+ # -*- coding: utf-8 -*-
31
+
32
+ import scipy as sp
33
+ import pandas as pd
34
+ from pandas import Series, DataFrame
35
+ import matplotlib.pyplot as plt
36
+ from sklearn.preprocessing import StandardScaler
37
+ from sklearn.ensemble import RandomForestClassifier #RandomForest
38
+ from sklearn.svm import SVC # SVM用
39
+ import lightgbm as lgb
40
+ from sklearn.metrics import confusion_matrix #混同行列
41
+ from sklearn.metrics import accuracy_score, precision_score #適合率
42
+ from sklearn.metrics import recall_score, f1_score #再現率,F1スコア
43
+ from sklearn.metrics import make_scorer
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+ def SVM(X_train_std, X_test_std, Y_train, Y_test):
52
+ model_SVM = SVC(random_state=0, kernel = "rbf", C = 1000 , gamma = 0.01 )
53
+ #学習モデル構築。引数に訓練データの特徴量と、それに対応したラベル
54
+ model_SVM.fit(X_train_std,Y_train)
55
+
56
+ #予測したクラスラベル
57
+ Y_pred = model_SVM.predict(X_test_std)
58
+
59
+ # .scoreで正解率を算出。
60
+ print("\nSVM")
61
+ print("train score:",model_SVM.score(X_train_std,Y_train))
62
+ print("test score:",model_SVM.score(X_test_std,Y_test))
63
+
64
+ print("accuracy score:",accuracy_score(Y_test, Y_pred,average='micro'))
65
+ print("precision score:",precision_score(Y_test, Y_pred,average='micro'))
66
+ print("recall score:",recall_score(Y_test, Y_pred,average='micro'))
67
+ print("f1 score:",f1_score(Y_test, Y_pred,average='micro'))
68
+
69
+
70
+
71
+ def GBM(X_train, X_test, Y_train, Y_test):
72
+ model_GBM = lgb.LGBMClassifier(boosting_type='gbdt', num_leaves=58,
73
+ max_depth=14, learning_rate=0.1, n_estimators=940,
74
+ min_child_samples=40, importance_type="split", random_state=0)
75
+
76
+ #学習モデル構築。引数に訓練データの特徴量と、それに対応したラベル
77
+ model_GBM.fit(X_train, Y_train)
78
+
79
+ #予測したクラスラベル
80
+ Y_pred = model_GBM.predict(X_test)
81
+
82
+ # .scoreで正解率を算出。
83
+ print("\nGBM")
84
+ print("train score:",model_GBM.score(X_train,Y_train))
85
+ print("test score:",model_GBM.score(X_test,Y_test))
86
+
87
+ print("accuracy score:",accuracy_score(Y_test, Y_pred,average='micro'))
88
+ print("precision score:",precision_score(Y_test, Y_pred,average='micro'))
89
+ print("recall score:",recall_score(Y_test, Y_pred,average='micro'))
90
+ print("f1 score:",f1_score(Y_test, Y_pred,average='micro'))
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+ def main():
100
+ """
101
+ TODO case_nameに任意の名前を指定
102
+ フォルダを統一するために以降のscriptも名前を統一する
103
+ """
104
+ case_name = "case3"
105
+ # ---------------------------------------
106
+
107
+ case_dir = "./casestudy/{}/".format(case_name)
108
+ input_csv_name = "2_extracted_features_original.csv"
109
+ input_csv_path = case_dir + input_csv_name
110
+ input_df = pd.read_csv(input_csv_path, encoding="utf-8-sig")
111
+
112
+
113
+ #すべてのデータを対象に分類を行う場合
114
+ #-----------------------------------------------------------------------
115
+ task = "all"
116
+ train_df = input_df[input_df["train_test_flag"] == 0]
117
+ test_df = input_df[input_df["train_test_flag"] == 1]
118
+ # print(train_df)
119
+ # print(test_df)
120
+
121
+ X_train = train_df.loc[:, "contrast":"inverse_difference_m_norm"]
122
+ X_test = test_df.loc[:, "contrast":"inverse_difference_m_norm"]
123
+ # print(X_train)
124
+ # print(X_test)
125
+ Y_train = train_df["category"]
126
+ Y_test = test_df["category"]
127
+ # print(Y_train)
128
+ # print(Y_test)
129
+
130
+ sc = StandardScaler()
131
+ sc.fit(X_train)
132
+ X_train_std = sc.transform(X_train)
133
+ X_test_std = sc.transform(X_test)
134
+ # print(X_train_std)
135
+ # print(X_test_std)
136
+ # #------------------------------------------------------------------------
137
+ SVM(X_train_std, X_test_std, Y_train, Y_test)
138
+ GBM(X_train, X_test, Y_train, Y_test)
139
+
140
+
141
+ if __name__ == "__main__":
142
+ main()
26
143
  ```