質問編集履歴

6

コードの編集

2021/11/24 07:57

投稿

hima-mura.
hima-mura.

スコア42

test CHANGED
File without changes
test CHANGED
@@ -1,88 +1,88 @@
1
1
  ```
2
2
 
3
- from sklearn.preprocessing import OneHotEncoder
3
+ from sklearn.preprocessing import OneHotEncoder
4
4
 
5
- import random
5
+ import random
6
6
 
7
- all_data=pd.read_csv('./all_data.csv',dtype=object,encoding='SHIFT-JIS')
7
+ all_data=pd.read_csv('./all_data.csv',dtype=object,encoding='SHIFT-JIS')
8
8
 
9
- all_data['馬体重']=all_data['馬体重'].astype(int) # 馬体重のみをint型にする。
9
+ all_data['馬体重']=all_data['馬体重'].astype(int) # 馬体重のみをint型にする。
10
10
 
11
- all_data.dropna(inplace=True) # NaNを含む列を削除
11
+ all_data.dropna(inplace=True) # NaNを含む列を削除
12
12
 
13
- X=all_data.loc[:,'枠':'条件']
13
+ X=all_data.loc[:,'枠':'条件']
14
14
 
15
- y=all_data.loc[:,'上位以内']
15
+ y=all_data.loc[:,'上位以内']
16
16
 
17
- X_train,X_test,y_train,y_test=separate_train_to_test(X,y) # X,yを3:1の割合で分ける関数
17
+ X_train,X_test,y_train,y_test=separate_train_to_test(X,y) # X,yを3:1の割合で分ける関数
18
18
 
19
19
 
20
20
 
21
21
  # X_trainは、DataFrameに渡してある。
22
22
 
23
- X_header=X_train.columns.values
23
+ X_header=X_train.columns.values
24
24
 
25
- judge_str=[type(s)==type('object') for s in X_train.loc[random.randint(0,len(X_train)),:]]
25
+ judge_str=[type(s)==type('object') for s in X_train.loc[random.randint(0,len(X_train)),:]]
26
26
 
27
- col_str=[s for s,bl in zip(X_header,judge_str) if bl] # データ値が文字(object)であるもののヘッダーを取得
27
+ col_str=[s for s,bl in zip(X_header,judge_str) if bl] # データ値が文字(object)であるもののヘッダーを取得
28
28
 
29
- col_num=[s for s,bl in zip(X_header,judge_str) if not bl] # データ値が数値であるもののヘッダーを取得(ここでは'馬体重'ヘッダーのみが該当)
29
+ col_num=[s for s,bl in zip(X_header,judge_str) if not bl] # データ値が数値であるもののヘッダーを取得(ここでは'馬体重'ヘッダーのみが該当)
30
30
 
31
- # カテゴリ変数のダミー化
31
+ # カテゴリ変数のダミー化
32
32
 
33
- ohe=OneHotEncoder(handle_unknown='ignore',sparse=False)
33
+ ohe=OneHotEncoder(handle_unknown='ignore',sparse=False)
34
34
 
35
- X_train_trans=ohe.fit_transform(X_train[col_str]) # カテゴリー変数のみダミー化
35
+ X_train_trans=ohe.fit_transform(X_train[col_str]) # カテゴリー変数のみダミー化
36
36
 
37
- col_str_class=[cls for ary in ohe.categories_ for cls in ary] # ダミー化したもののヘッダー
37
+ col_str_class=[cls for ary in ohe.categories_ for cls in ary] # ダミー化したもののヘッダー
38
38
 
39
- # ダミー変数と連続値の結合(訓練データ)
39
+ # ダミー変数と連続値の結合(訓練データ)
40
40
 
41
- af_X_train_trans=DataFrame(X_train_trans,columns=col_str_class)
41
+ af_X_train_trans=DataFrame(X_train_trans,columns=col_str_class)
42
42
 
43
- af_X_train_trans[col_num]=X_train[col_num]
43
+ af_X_train_trans[col_num]=X_train[col_num]
44
44
 
45
- # 訓練データを参照しカテゴリ変数のダミー変数の生成と、その結合(テストデータ)
45
+ # 訓練データを参照しカテゴリ変数のダミー変数の生成と、その結合(テストデータ)
46
46
 
47
- X_test_trans=ohe.transform(X_test[col_str])
47
+ X_test_trans=ohe.transform(X_test[col_str])
48
48
 
49
- af_X_test_trans=DataFrame(X_test_trans,columns=col_str_class)
49
+ af_X_test_trans=DataFrame(X_test_trans,columns=col_str_class)
50
50
 
51
- af_X_test_trans[col_num]=X_test[col_num]
51
+ af_X_test_trans[col_num]=X_test[col_num]
52
52
 
53
- # 確認
53
+ # 確認
54
54
 
55
- print(f'axis=0:{X_train[col_num].isnull().any(axis=0)}') # axis=0:馬体重 False
55
+ print(f'axis=0:{X_train[col_num].isnull().any(axis=0)}') # axis=0:馬体重 False
56
56
 
57
- for i,s in enumerate(X_train[col_num].isnull().any(axis=1)):
57
+ for i,s in enumerate(X_train[col_num].isnull().any(axis=1)):
58
58
 
59
- if s:
59
+ if s:
60
60
 
61
- print(i)
61
+ print(i)
62
62
 
63
63
  # なにも表示されないため該当なし
64
64
 
65
- print('-'*20)
65
+ print('-'*20)
66
66
 
67
-   find_NaN=af_X_train_trans.isnull().any(axis=0)
67
+ find_NaN=af_X_train_trans.isnull().any(axis=0)
68
68
 
69
- for i,s in enumerate(find_NaN):
69
+ for i,s in enumerate(find_NaN):
70
70
 
71
- if s:
71
+ if s:
72
72
 
73
- print(i)
73
+     print(i)
74
74
 
75
75
    # 4120 # これは結合した'馬体重'の列
76
76
 
77
- find_NaN=af_X_train_trans.isnull().any(axis=1)
77
+ find_NaN=af_X_train_trans.isnull().any(axis=1)
78
78
 
79
- for i,s in enumerate(find_NaN):
79
+ for i,s in enumerate(find_NaN):
80
80
 
81
- if s:
81
+ if s:
82
82
 
83
- print(i)
83
+ print(i)
84
84
 
85
- print(af_X_train_trans['馬体重'][i])
85
+ print(af_X_train_trans['馬体重'][i])
86
86
 
87
87
  '''
88
88
 
@@ -152,9 +152,9 @@
152
152
 
153
153
  '''
154
154
 
155
- print(af_X_train_trans['馬体重'].shape) # (8194,)
155
+ print(af_X_train_trans['馬体重'].shape) # (8194,)
156
156
 
157
- print(af_X_train_trans.shape) # (8194, 4121)
157
+ print(af_X_train_trans.shape) # (8194, 4121)
158
158
 
159
159
  ```
160
160
 

5

コードの編集

2021/11/24 07:57

投稿

hima-mura.
hima-mura.

スコア42

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  ```
2
2
 
3
3
  from sklearn.preprocessing import OneHotEncoder
4
+
5
+ import random
4
6
 
5
7
  all_data=pd.read_csv('./all_data.csv',dtype=object,encoding='SHIFT-JIS')
6
8
 

4

コードの編集

2021/11/23 14:21

投稿

hima-mura.
hima-mura.

スコア42

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  from sklearn.preprocessing import OneHotEncoder
4
4
 
5
- all_data=pd.read_csv('./all_data.csv',dtype=object,encoding='SHIFT-JIS')
5
+ all_data=pd.read_csv('./all_data.csv',dtype=object,encoding='SHIFT-JIS')
6
6
 
7
- all_data['馬体重']=all_data['馬体重'].astype(int) # 馬体重のみをint型にする。
7
+ all_data['馬体重']=all_data['馬体重'].astype(int) # 馬体重のみをint型にする。
8
8
 
9
- all_data.dropna(inplace=True) # NaNを含む列を削除
9
+ all_data.dropna(inplace=True) # NaNを含む列を削除
10
10
 
11
- X=all_data.loc[:,'枠':'条件']
11
+ X=all_data.loc[:,'枠':'条件']
12
12
 
13
- y=all_data.loc[:,'上位以内']
13
+ y=all_data.loc[:,'上位以内']
14
14
 
15
- X_train,X_test,y_train,y_test=separate_train_to_test(X,y) # X,yを3:1の割合で分ける関数
15
+ X_train,X_test,y_train,y_test=separate_train_to_test(X,y) # X,yを3:1の割合で分ける関数
16
16
 
17
17
 
18
18
 

3

コードの編集

2021/11/23 13:30

投稿

hima-mura.
hima-mura.

スコア42

test CHANGED
File without changes
test CHANGED
@@ -156,6 +156,6 @@
156
156
 
157
157
  ```
158
158
 
159
- OneHotEncoderを用いて、訓練データXを最初にカテゴリー変数と連続値に分け、カテゴリー変数のみをダミー化した後に連続値と結合させる処理を施しました。ですが、ダミー化したカテゴリー変数単体と連続値にはNaNが含まれていないのに、それらを結合させると'馬体重'にNaNが発生してしまいます。
159
+ OneHotEncoderを用いて、dropna()を用いてNaNを省いた訓練データXを最初にカテゴリー変数と連続値に分け、カテゴリー変数のみをダミー化した後に連続値と結合させる処理を施しました。ですが、ダミー化したカテゴリー変数単体と連続値にはNaNが含まれていないのに、それらを結合させると'馬体重'にNaNが発生してしまいます。
160
160
 
161
161
  助言をお願いします。

2

コードの編集

2021/11/22 12:37

投稿

hima-mura.
hima-mura.

スコア42

test CHANGED
File without changes
test CHANGED
@@ -61,6 +61,16 @@
61
61
  # なにも表示されないため該当なし
62
62
 
63
63
  print('-'*20)
64
+
65
+   find_NaN=af_X_train_trans.isnull().any(axis=0)
66
+
67
+ for i,s in enumerate(find_NaN):
68
+
69
+ if s:
70
+
71
+ print(i)
72
+
73
+   # 4120 # これは結合した'馬体重'の列
64
74
 
65
75
  find_NaN=af_X_train_trans.isnull().any(axis=1)
66
76
 

1

コードの編集

2021/11/22 12:36

投稿

hima-mura.
hima-mura.

スコア42

test CHANGED
File without changes
test CHANGED
@@ -146,6 +146,6 @@
146
146
 
147
147
  ```
148
148
 
149
- OneHotEncoderを用いて、訓練データXを最初にカテゴリー変数と連続値に分け、カテゴリー変数のみをダミー化した後に連続値と結合させる処理を施しました。ですが、ダミー化したカテゴリー変数単体と連続値にはNaNが含まれていないのに、それらを結合させるとNaNが発生してしまいます。
149
+ OneHotEncoderを用いて、訓練データXを最初にカテゴリー変数と連続値に分け、カテゴリー変数のみをダミー化した後に連続値と結合させる処理を施しました。ですが、ダミー化したカテゴリー変数単体と連続値にはNaNが含まれていないのに、それらを結合させると'馬体重'にNaNが発生してしまいます。
150
150
 
151
151
  助言をお願いします。