AI
2023/02/28
飯沼 佑太

決定木モデルを使ってAI予測モデルを実装!AI入門者向けのチュートリアル

logo_Python

決定木モデルとは、分類や予測を行う機械学習の手法の1つであり、複雑なデータを分類して分析することができます。本ブログでは、決定木モデルの基礎的な概念から、実際のデータ分析に応用する方法まで、初心者にも理解しやすいように解説しています。初心者の方や機械学習に興味がある方は、ぜひ参考にしてみてください。

決定木モデルとは?

まず、決定木モデルとは、ある入力データに対して、分類や回帰などの予測を行う機械学習アルゴリズムの一つです。このモデルでは、木の形をした分類器が作成されます。分類器は、ある特徴量(例えば、体重や身長など)の値によって、データを分類していきます。

たとえば、ある人が飲んでいる飲み物がコーヒーか紅茶かを分類する場合を考えてみましょう。まず、決定木モデルは、ある特徴量を選択して、その特徴量の値によってデータを分割します。例えば、「カフェイン含有量が10mg未満」か「10mg以上」かで分割することができます。次に、分割されたグループに対して同じ操作を繰り返します。このようにして作られた決定木モデルは、未知のデータに対して予測を行うことができます。たとえば、新しい人の飲み物が「カフェイン含有量が5mg未満」か「5mg以上10mg未満」かであれば、その特徴量の値によってデータを分割し、最終的に「コーヒー」と「紅茶」のどちらに分類されるかを予測することができます。

決定木モデルには、分類だけでなく回帰にも使われます。回帰の場合、決定木モデルは、ある特徴量の値に基づいて、数値を予測することができます。たとえば、ある物件の広さ、築年数、立地などの特徴量に基づいて、その物件の価格を予測することができます。

これ以降で実際にPythonを使って決定木モデルの実装を行なっていきます。

画像引用:https://scikit-learn.org/stable/modules/tree.html

プログラム解説〜データ前処理〜

今回はこちらのKaggleのKickstarter Projectsのデータを例に実践していきます。KaggleのKickstarter Projectsは、クラウドファンディングサイト「Kickstarter」で行われたプロジェクトのデータセットです。データセットには、プロジェクト名、カテゴリー、開始日、終了日、目標金額、資金調達額、支援者の数、プロジェクト状況など、さまざまな情報が含まれています。

Kickstarter Projects

データ前処理を済ませたデータがこちらになります。

img_sampledata

プログラム解説 〜データの標準化と分割処理〜

まず、下記のコードを実行し、説明変数の標準化とデータの分割処理を行います。

img_data_process

プログラム解説 〜モデルの設定&学習〜

次に下記コードを実行しモデルの設定と学習を行います。ハイパーパラメータは下記リンクから詳細を確認してください。これで決定木モデルの実装は完成です。

sklearn.tree.DecisionTreeClassifier

プログラム解説 〜モデルの性能評価〜

次は、実装した決定木モデルの精度評価をしていきます。今回は訓練データと検証データの識別率とモデル自体の性能評価を行なっていきます。

この結果から、過学習を起こさず性能の高いモデルが実装できていることが確認できます。

img_tree_result

プログラムの全容

今回、実装したプログラムは下記リンクから詳細を確認することができます。是非ご活用ください。

Google Colaboratory

New call-to-action