文字カテゴリデータ処理
2539 ワード
機械学習アルゴリズムは文字列データ属性の入力を受け入れず、すべてのデータを数値で表さなければならない.したがって、文字型カテゴリ属性はすべて数値値に変換/符号化する必要があります.
scikit-learningを用いた変換方式は2種類ある.
ラベルコード
いちじねつコーディング
今、一つ一つよく見てみましょう.
ラベルコード
Label Encodeは、特徴のタイプに応じて数値を付与します.
수행 방법
from sklearn.preprocessing import LabelEncoder
items=['트와이스','BTS','레드벨벳','신화','GOD','GOD']
# LabelEncoder를 객체로 생성 -> fit() -> transform()
encoder = LabelEncoder()
encoder.fit(items)
labels = encoder.transform(items)
print('인코딩 변환값:',labels)
결과값
[4, 0, 2, 3, 1, 1]
ラベルコーディングの問題
バッチ値に変換すると、予測パフォーマンスが低下する可能性があります.
->数値のサイズプロパティ
線形回帰などのMLアルゴリズムには適用されません(ツリー系列のMLアルゴリズムは数字のこれらの特性を反映しないので大丈夫です)
いちじねつコーディング
1-ホットコーディングは、featureのタイプに応じて新しい特徴を追加し、固有値に対応するコラムにのみ1を表示し、残りのコラムに0を表示する方法です.
scikit-learnの方法とパンダの方法は2種類あります.
1.sklearningによる一元熱符号化
一熱符号化を行う前に、まずラベル符号化を行う.
from sklearn.preprocessing import OneHotEncoder
import numpy as np
items=['트와이스','BTS','레드벨벳','신화','GOD','GOD']
# 먼저 LabelEncoder로 변환
encoder = LabelEncoder()
encoder.fit(items)
labels = encoder.transform(items)
# 2차원 데이터로 변환
labels = labels.reshape(-1,1)
# 원-핫 인코딩을 적용
oh_encoder = OneHotEncoder()
oh_encoder.fit(labels)
oh_labels = oh_encoder.transform(labels)
2. pd.get_dummies()
import pandas as pd
df = pd.DataFrame({'item':['트와이스','BTS','레드벨벳','신화','GOD','GOD'] })
# 원핫인코딩 실행
pd.get_dummies(df)
ソース
https://john-analyst.medium.com/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%84%EC%B2%98%EB%A6%AC-%EB%A0%88%EC%9D%B4%EB%B8%94-%EC%9D%B8%EC%BD%94%EB%94%A9%EA%B3%BC-%EC%9B%90%ED%95%AB-%EC%9D%B8%EC%BD%94%EB%94%A9-f0220df21df1
Reference
この問題について(文字カテゴリデータ処理), 我々は、より多くの情報をここで見つけました https://velog.io/@hyesoup/문자-카테고리형-데이터-처리-Label-Encoding-One-Hot-Encodingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol