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

質問編集履歴

3

誤字訂正

2018/11/13 03:49

投稿

dal
dal

スコア38

title CHANGED
File without changes
body CHANGED
@@ -66,7 +66,7 @@
66
66
  #出力結果=>[2]
67
67
  ```
68
68
 
69
- 今度は1つ前の出力結果と等しくなります。一体どういう仕組みでラベルの数値が行われているのか、とても気になっています。
69
+ 今度は1つ前の出力結果と等しくなります。一体どういう仕組みでラベルの数値が行われているのか、とても気になっています。
70
70
 
71
71
  ####質問
72
72
  LabelEncoderを用いた際、ラベル名を数値に変換する際にどういったルールがあるのか、詳しい方がいたら教えていただきたいです。

2

タイトル改善

2018/11/13 03:49

投稿

dal
dal

スコア38

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  scikit-learnのLabelEncoderに関する質問です。
2
2
 
3
- #####実行内容・疑問点
3
+ ####実行内容・疑問点
4
4
 
5
5
  まず以下のようにしてLabelEncodingを行いました。( jupiter notebookを用いています。)
6
6
 
@@ -68,5 +68,5 @@
68
68
 
69
69
  今度は1つ前の出力結果と等しくなります。一体どういう仕組みでラベルの数値かが行われているのか、とても気になっています。
70
70
 
71
- #####質問
71
+ ####質問
72
72
  LabelEncoderを用いた際、ラベル名を数値に変換する際にどういったルールがあるのか、詳しい方がいたら教えていただきたいです。

1

内容の改善

2018/11/12 13:51

投稿

dal
dal

スコア38

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,8 @@
1
1
  scikit-learnのLabelEncoderに関する質問です。
2
2
 
3
- #####疑問点
3
+ #####実行内容・疑問点
4
4
 
5
- まず以下のようにしてLabelEncodingを行いました。
5
+ まず以下のようにしてLabelEncodingを行いました。( jupiter notebookを用いています。)
6
6
 
7
7
  ``` python
8
8
  from sklearn.preprocessing import LabelEncoder
@@ -14,7 +14,7 @@
14
14
 
15
15
  le = LabelEncoder()
16
16
  le.fit(["umi", "yama", "tokyo", "kyoto"])
17
- le.transform(["yama"])
17
+ print(le.transform(["yama"]))
18
18
  #出力結果=>[3]
19
19
  ```
20
20
 
@@ -25,7 +25,7 @@
25
25
  le.fit(["umi", "yama", "tokyo", "kyoto"])
26
26
  ```
27
27
 
28
- として、LabelEncoder()を定義し直し、再びfit()を行なっている訳ですが、transform(["yama"])の出力結果が1度目と等しくなります。
28
+ として、LabelEncoder()を定義し直し、再びfit()を行なっている訳ですが、le.transform(["yama"])の出力結果が1度目と等しくなります。
29
29
 
30
30
  次に、
31
31
 
@@ -41,9 +41,9 @@
41
41
  #出力結果=>[1]
42
42
  ```
43
43
 
44
- を行いましたが、やはりtransform(["tokyo"])の出力結果が等しくなりました。
44
+ を行いましたが、やはりle.transform(["tokyo"])の出力結果が等しくなりました。
45
45
 
46
- ここで、変換したいデータ名が等しければ、LabelEncoder()を定義し直し、再度fit()を行なっても、出力結果が必ず等しくなるのかな?と思ったのです。
46
+ ここで、ラベル名が等しければ、LabelEncoder()を定義し直し、再度fit()を行なっても、出力結果が必ず等しくなるのかな?と思ったのです。
47
47
 
48
48
  しかし、以下のコードを実行したところ、
49
49
 
@@ -51,5 +51,22 @@
51
51
  le = LabelEncoder()
52
52
  le.fit(["umi", "yama", "tokyo", "kyoto","mori"])
53
53
  print(le.transform(["tokyo"]))
54
- #出力結果=>[]
54
+ #出力結果=>[2]
55
- ```
55
+ ```
56
+
57
+ le.transform(["tokyo"])の出力が、[1]ではなく[2]になりました。
58
+ 変更点は、fit()に用いるラベルを1つ追加したことです。
59
+
60
+ さらに、以下も実行しました。
61
+
62
+ ```python
63
+ le = LabelEncoder()
64
+ le.fit(["umi", "yama", "tokyo", "kyoto","mori","mori","mori","mori"])
65
+ print(le.transform(["tokyo"]))
66
+ #出力結果=>[2]
67
+ ```
68
+
69
+ 今度は1つ前の出力結果と等しくなります。一体どういう仕組みでラベルの数値かが行われているのか、とても気になっています。
70
+
71
+ #####質問
72
+ LabelEncoderを用いた際、ラベル名を数値に変換する際にどういったルールがあるのか、詳しい方がいたら教えていただきたいです。