質問編集履歴
3
質問内容の変更、更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
下のコードを実際に動かそうとすると
|
2
2
|
|
3
|
-
ValueError:
|
3
|
+
ValueError: bad input shape (1000, 4)とエラーが発生してしまいます。
|
4
4
|
|
5
|
-
cross_val_scoreが原因なはずですがどのようにすればエラーが消えますでしょうか。
|
5
|
+
cross_val_scoreの所が原因なはずですがどのようにすればエラーが消えますでしょうか。分類元のデータの個数とその分類結果の個数を合わせる必要があるのは分かりますが数変えたりしても解消されません。
|
6
6
|
|
7
7
|
扱うデータの中身は
|
8
8
|
|
@@ -28,26 +28,52 @@
|
|
28
28
|
|
29
29
|
```Python
|
30
30
|
|
31
|
-
#
|
31
|
+
#目視ではなく機械的に選択。ANOVAのF値を用いる
|
32
|
-
|
33
|
-
#これを使ってロジスティック回帰を評価しようとして見ようとしている
|
34
32
|
|
35
33
|
##make matrix
|
36
34
|
|
37
|
-
|
35
|
+
X = df.drop('Class', axis=1)
|
38
|
-
|
39
|
-
X = df[['V0','V2','V3','V5','V6','V7','V9']]
|
40
36
|
|
41
37
|
y = df.Class
|
42
38
|
|
43
39
|
|
44
40
|
|
45
|
-
|
41
|
+
scores=[]
|
46
42
|
|
47
|
-
|
43
|
+
for n in tqdm(range(1,len(X.columns))):
|
48
44
|
|
49
|
-
print('
|
45
|
+
print('\n説明変数の数n=',n)
|
50
46
|
|
47
|
+
##select features
|
48
|
+
|
49
|
+
select = SelectKBest(k=n)
|
50
|
+
|
51
|
+
select.fit(X, y)
|
52
|
+
|
53
|
+
mask = select.get_support()
|
54
|
+
|
55
|
+
X_selected = X.iloc[:,mask]
|
56
|
+
|
57
|
+
##10-foldCV, LogisticRegression, PR_AUC
|
58
|
+
|
59
|
+
#cv=StratifiedKFold(n_splits=3)
|
60
|
+
|
61
|
+
#cross_val_scoreは、classifierとトレーニング用データ、テスト用データを指定してその精度を割り出せる便利なツール
|
62
|
+
|
63
|
+
#cvは交差検証の略でデータのsplitの方法を指定できる
|
64
|
+
|
65
|
+
#n_splitはデータをいくつに分けるかを指定するもの。defaultは3。
|
66
|
+
|
67
|
+
logreg = LogisticRegression()
|
68
|
+
|
69
|
+
kfold=KFold(n_splits=3)
|
70
|
+
|
71
|
+
pr_auc = cross_val_score(logreg, X_selected, y, scoring="average_precision", cv=kfold)
|
72
|
+
|
73
|
+
#pr_auc = cross_val_score(LogisticRegression(), X_selected, y, scoring="average_precision", cv=kfold)
|
74
|
+
|
75
|
+
scores.append(np.mean(pr_auc))
|
76
|
+
|
51
|
-
print('
|
77
|
+
print('平均のPR_AUC:',scores[n-1])
|
52
78
|
|
53
79
|
```
|
2
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,11 @@
|
|
20
20
|
|
21
21
|
32 ・・・ 32 4
|
22
22
|
|
23
|
+
・
|
24
|
+
|
25
|
+
・
|
26
|
+
|
23
|
-
のように全部
|
27
|
+
のように全部で3000近いビッグデータで、Classが1~4に分かれていてそのクラスを予測する目的です。
|
24
28
|
|
25
29
|
```Python
|
26
30
|
|