プログラミングを学ぶ人「label encoding、One-hot encodingって何?」
こんな方に向けた記事です。
今回はPython機械学習でデータ分析をする上で重要なカテゴリ変数の変換について一緒に勉強していきましょう。
カテゴリ変数は順序変数に近い考え方です。順序変数についてはこちらの記事で解説しているので是非一度ご覧になってください。
Python機械学習でのデータ分析の流れを簡単に表すと次のようになります。
データ分析の流れ
カテゴリ変数の変換は3.データの前処置で登場します。
カテゴリ変数に対して、数値変数の変換には標準化やMin-Maxスケーリングがなどがあります。こちらの記事で解説しているので是非一度御覧ください。
カテゴリ変数は例えば心不全患者における性別(男性or女性)、転帰(生存or死亡)などが挙げられます。
これらは多くの機械学習モデルではそのまま扱うことができません。モデルごとに適した形に変換する必要があります。
今回はPython機械学習で必ず必要なカテゴリ変数の変換について一緒に勉強していきましょう。
本記事の想定読者
- カテゴリ変数とは何か理解する。
- カテゴリ変数変換の代表的な2つの手法を理解する。
ラベルエンコーディング、ワンホットエンコーディング
まずカテゴリ変数とはなんでしょうか。
カテゴリ変数は質的なデータを0や1など数字で表すことです。
例を見てみましょう。乳がん患者の予後を予測するstudyを想定してみましょう。
このように質的なデータを数字としてラベリングしたのがカテゴリ変数です。
カテゴリ変数の変換には様々手法が存在しますが中でも代表的な2つの手法(ワンホットエンコーディング、ラベルエンコーディング)について見て参りましょう。
ワンホットエンコーディング
One-hot encodingは質的なデータを0 or 1(つまりYes or No)の二者択一の値としてラベリングする手法です。
この質的データをラベリングした二値変数はダミー変数と呼ばれます。
男性or女性のように元々質的に2つの分類を有するデータをそれぞれ0 or 1にラベリングする場合もあれば、年齢のような数字にカットオフを設けてラベリングすることもできます。
One-hot encodingの欠点は2つの分類しかできないため、データの水準数が多い場合は特徴を正確にラベリングすることができない点です。
次に説明するlabel encodingではその欠点を緩和することができます。
ラベルエンコーディング
label encodingは各水準それぞれを整数にラベリングする手法です。
今回は患者さんへの治療の種類を手術:1 ケモ:2 放射線:3 手術+ケモ:4と4つにラベリングしています。
このようにダミー変数で表現することで円滑に機械学習を行うことができます。
【参考にさせていただきました】
さいごに
今回はPython機械学習の基本的な考え方であるカテゴリ変数の変換について一緒に勉強しました。
カテゴリ変数:質的なデータを0や1など数字で表すこと。
変数変換の代表者2この推力
概念自体の理解はとっつきにくいと思います。
具体例で実際にイメージしながらじっくりと理解していくのが良いと思います。
機械学習はプログラミング言語のPythonを用いれば、今持っている自分のパソコンですぐに実践することができます。
英語論文になっている手法もしっかりと勉強すれば、自分のパソコンで出来ます。
このサイトでは、プログラミングに興味のある医学生、医師のための情報を発信しております。
プログラミングの学習方法には大きく分けて、「独学」と「プログラミングスクール」の2つがあります。
当サイトでは一貫してプログラミングスクールを利用することをおすすめしています。
なぜなら、独学で勉強した私が非常に苦労したからです。
また私はプログラミングを学習するにあたり、師匠・メンターのような存在がいました。
わからないところは教えてもらっていました。
そのような環境でなければ0から独学で勉強するのはとても効率が悪いと思います。
詳しくは、プログラミングの独学は難しいです【私の失敗談】で紹介しています。
この記事が一人でも多くのプログラミングに興味のある方のお役に立てば幸いです。