回答編集履歴

2

追記

2020/03/20 22:57

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -10,6 +10,26 @@
10
10
 
11
11
 
12
12
 
13
+ 実際に前処理をどうやるべきか? ですが、scikit-learnで書くとこんな感じです。
14
+
15
+
16
+
17
+ [6.1. Pipelines and composite estimators — scikit-learn 0.22.2 documentation](https://scikit-learn.org/stable/modules/compose.html#column-transformer)
18
+
19
+ [scikit-learnのColumnTransformerを使ってみる - 静かなる名辞](https://www.haya-programming.com/entry/2019/06/29/194801#OneHotEncoder%E3%81%A8%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B)(拙記事)
20
+
21
+
22
+
23
+ 自分で書いても良いのですが、one-hot変換をちゃんと実装するのはけっこう面倒くさいです。特段の理由がなければscikit-learnを(あるいは他の機械学習ライブラリを)勧めます。
24
+
25
+
26
+
27
+ ---
28
+
29
+
30
+
31
+
32
+
13
33
  > one-hotに拘らず、性別男は1、女は2、趣味が手芸なら1、ボクシングなら2…読書なら72などのように数値に変換してしまえば、1次元のベクトルになるとも考えました。これでベクトルを作り、あとはcorrcoefで比較し出す相関係数は結果参考にするには正しい考え方でしょうか。
14
34
 
15
35
 

1

追記

2020/03/20 22:57

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -7,3 +7,11 @@
7
7
 
8
8
 
9
9
  数値とダミー変数が混ざると、単純な相関ではかなり厳しくなるので、機械学習をおすすめします。
10
+
11
+
12
+
13
+ > one-hotに拘らず、性別男は1、女は2、趣味が手芸なら1、ボクシングなら2…読書なら72などのように数値に変換してしまえば、1次元のベクトルになるとも考えました。これでベクトルを作り、あとはcorrcoefで比較し出す相関係数は結果参考にするには正しい考え方でしょうか。
14
+
15
+
16
+
17
+ 名義尺度の数値になりますので、うまくいきません。たとえば、「趣味:手芸」は「趣味:読書」より「趣味:ボクシング」に近いと考えることは無意味ですが、数値にエンコードして距離とか相関を測ると、そういうことをやるのと同じ結果になります。