Base NEncoders의 base = 무슨 뜻일까요?

2641 단어 Python

입문


Category Encoding의 대표적인 것들을 배웠지만 라이브러리의 사용법을 몰라서 조사하는 데 시간이 많이 걸렸기 때문에 정리하고 싶습니다.
이곳의 코드는 모두 다음 문장의 내용을 사용하기 때문에 간단하게 읽고 계속 읽으면 쉽게 이해할 수 있습니다.
Category Encoding은 매우 통일되어 있으므로 권장합니다.

기본 용어 정보


이 글의 코드를 인용했다.BaseNはbaseオプションに指定する値によって、One-Hot / Binary / Ordinal Encodingを使い分けることができます。 있지만 어떻게 지정해야 어떤 인코딩을 사용할 수 있는지 몰라 이번 기사를 쓰기로 했다.
그나저나 공식 문서 그렇습니다.
base: int
when the downstream model copes well with nonlinearities (like decision tree), use higher base.

# 翻訳
ダウンストリームモデルが非線形性(デシジョンツリーなど)にうまく対応する場合は、より高いベースを使用します。
응, 몰라.
조금 조사하는 데 시간이 걸렸기 때문에 모르는 사람을 위해 지정한 방법을 정리했다.

문제

base=1 그러면 One-Hot 인코딩.
# base=1
bne = ce.BaseNEncoder(cols=cate_col, base=1, drop_invariant=True)
bne_df = bne.fit_transform(df[cate_col])
pd.concat([df[cate_col], bne_df], axis=1)
base=5 태그 인코딩
# base=5
bne = ce.BaseNEncoder(cols=cate_col, base=5, drop_invariant=True)
bne_df = bne.fit_transform(df[cate_col])
pd.concat([df[cate_col], bne_df], axis=1)

왜 1은 One-Hot일까요?왜 5가 label-encoding일까요?
이유가 있어.この数値はエンコーディングの対象にしているカテゴリ数によって変化します。

base=의 지정 방법


이것base은 이 매개 변수가 단도직입적〇進数을 나타낸다.
(나는 확실히 말을 받았다고 생각한다)
따라서 base=1 을 지정하면 1進数 에서 카테고리 변수 One-Hotエンコーディング 를 나타냅니다.
이번에는 종류가 있다4つ.
따라서 base=5 (5進数) 을 선택하면 ラベルエンコーディング 이 됩니다.(1-4로 표현하기 위해)base=2를 선택하면 Binary로 확인됩니다.
# base=2
bne = ce.BaseNEncoder(cols=cate_col, base=2, drop_invariant=True)
bne_df = bne.fit_transform(df[cate_col])
pd.concat([df[cate_col], bne_df], axis=1)

끝내다


나는 Category Encoder가 매우 편리한 라이브러리라고 생각한다.
앞으로 가져오고 싶습니다.분류 변수는 어떤 방법을 사용하느냐가 매우 중요하기 때문에 언제 사용할 수 있는지 이해할 필요가 있다.

참고문

좋은 웹페이지 즐겨찾기