顧客離れを予測するためのデシジョン ツリー分類子の例
顧客離れを予測するためのデシジョン ツリー分類子の例
概要
このプロジェクトでは、デシジョン ツリー分類子を使用して顧客の離脱 (顧客がサービスを離れるかどうか) を予測する方法を示します。このデータセットには、顧客が離脱するかどうかを予測することを目的として、年齢、月額料金、カスタマー サービスへの通話などの機能が含まれています。
モデルは Scikit-learn のデシジョン ツリー分類器を使用してトレーニングされ、コードはデシジョン ツリーを視覚化して、モデルがどのように意思決定を行っているかをよりよく理解します。
使用されている技術
- Python 3.x: モデルの構築に使用される主な言語。
- Pandas: データ操作とデータセットの処理用。
- Matplotlib: データ視覚化 (デシジョン ツリーのプロット) 用。
- Scikit-learn: モデルのトレーニングと評価を含む機械学習用。
手順の説明
1. 必要なライブラリをインポートします
import pandas as pd import matplotlib.pyplot as plt import warnings from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score from sklearn import tree
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
-
パンダ (pd):
- これは、データ操作と DataFrame 形式へのデータのロードに使用されます。 DataFrame を使用すると、テーブル (行と列) のような構造化データを整理および操作できます。
-
Matplotlib (plt):
- これは、データを視覚化するために使用されるプロット ライブラリです。ここでは、デシジョン ツリーをグラフィカルにプロットするために使用されており、ツリーの各ノードで意思決定がどのように行われるかを理解するのに役立ちます。
-
警告 (警告):
- 警告モジュールは、警告を抑制または処理するために使用されます。このコードでは、出力をクリーンで読みやすい状態に保つために、不要な警告を無視しています。
-
Scikit-learn ライブラリ:
- train_test_split: この関数は、データセットをトレーニングとテストのサブセットに分割します。トレーニング データはモデルの適合に使用され、テスト データはパフォーマンスの評価に使用されます。
- DecisionTreeClassifier: これは、データを分類し、顧客離れを予測するために使用されるモデルです。デシジョン ツリーは、特徴に基づいて意思決定のツリー状モデルを作成することで機能します。
- accuracy_score: この関数は、予測値とターゲット変数 (チャーン) の実際の値を比較することによって、モデルの精度を計算します。
- tree: このモジュールには、トレーニング後のデシジョン ツリーを視覚化するための関数が含まれています。
2. 警告の抑制
import pandas as pd import matplotlib.pyplot as plt import warnings from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score from sklearn import tree
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
- この行は、Python にすべての警告を無視するように指示します。これは、モデルを実行していて、警告 (非推奨の関数に関する警告など) によって出力が煩雑になることを望まない場合に役立ちます。
3. 合成データセットの作成
warnings.filterwarnings("ignore")
ログイン後にコピー
ログイン後にコピー
-
ここでは、プロジェクトの 合成データセット を作成します。このデータセットは、年齢、月次料金、CustomerServiceCalls、およびターゲット変数 Churn (顧客が解約したかどうか) などの機能を使用して、通信会社の顧客情報をシミュレートします。
- CustomerID: 各顧客の一意の識別子。
- 年齢: お客様の年齢
- MonthlyCharge: 顧客の毎月の請求書。
- CustomerServiceCalls: 顧客がカスタマー サービスに電話した回数。
- 解約: 顧客が解約したかどうか (はい/いいえ)。
Pandas DataFrame: データは、2 次元のラベル付きデータ構造である DataFrame (df) として構造化されており、データの操作と分析が容易になります。
4. データを特徴とターゲット変数に分割する
import pandas as pd import matplotlib.pyplot as plt import warnings from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score from sklearn import tree
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
- 特徴 (X): ターゲットを予測するために使用される独立変数。この場合、Age、MonthlyCharge、CustomerServiceCalls が含まれます。
- ターゲット変数 (y): 従属変数。予測しようとしている値です。ここでは、顧客が離脱するかどうかを示す Churn 列です。
5. データをトレーニング セットとテスト セットに分割する
warnings.filterwarnings("ignore")
ログイン後にコピー
ログイン後にコピー
-
train_test_split は、データセットを 2 つの部分、トレーニング セット (モデルのトレーニングに使用される) と テスト セット (モデルの評価に使用される) に分割します。
- test_size=0.3: データの 30% がテスト用に確保され、残りの 70% がトレーニングに使用されます。
- random_state=42 は、乱数生成器のシードを固定することで結果の再現性を保証します。
6. デシジョン ツリー モデルのトレーニング
data = { 'CustomerID': range(1, 101), # Unique ID for each customer 'Age': [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10, # Age of customers 'MonthlyCharge': [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10, # Monthly bill amount 'CustomerServiceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10, # Number of customer service calls 'Churn': ['No', 'No', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'No', 'Yes']*10 # Churn status } df = pd.DataFrame(data) print(df.head())
ログイン後にコピー
- DecisionTreeClassifier() はデシジョン ツリー モデルを初期化します。
- clf.fit(X_train, y_train) は、トレーニング データを使用してモデルをトレーニングします。モデルは、X_train 特徴からパターンを学習して、y_train ターゲット変数を予測します。
7. 予測を立てる
X = df[['Age', 'MonthlyCharge', 'CustomerServiceCalls']] # Features y = df['Churn'] # Target Variable
ログイン後にコピー
- clf.predict(X_test): モデルがトレーニングされた後、テスト セット (X_test) で予測を行うために使用されます。これらの予測値は y_pred に保存され、実際の値 (y_test) と比較してモデルを評価します。
8. モデルの評価
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
ログイン後にコピー
- accuracy_score(y_test, y_pred) は、予測されたチャーン ラベル (y_pred) とテスト セットの実際のチャーン ラベル (y_test) を比較することにより、モデルの精度を計算します。
- 精度は、どれだけの予測が正しかったかを示す尺度です。評価用に印刷されます。
9. デシジョンツリーの視覚化
clf = DecisionTreeClassifier() clf.fit(X_train, y_train)
ログイン後にコピー
- tree.plot_tree(clf,filled=True): トレーニングされたデシジョン ツリー モデルを視覚化します。 filled=True 引数は、クラス ラベル (チャーン/チャーンなし) に基づいてノードを色付けします。
- feature_names: ツリーに表示する機能 (独立変数) の名前を指定します。
- class_names: ターゲット変数 (Churn) のクラス ラベルを指定します。
- plt.show(): ツリーの視覚化を表示します。
コードの実行
- リポジトリのクローンを作成するか、スクリプトをダウンロードします。
- 依存関係をインストールします。
import pandas as pd import matplotlib.pyplot as plt import warnings from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score from sklearn import tree
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
- Python スクリプトまたは Jupyter ノートブックを実行してモデルをトレーニングし、デシジョン ツリーを視覚化します。
以上が顧客離れを予測するためのデシジョン ツリー分類子の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7315
9


Java チュートリアル
1625
14


CakePHP チュートリアル
1348
46


Laravel チュートリアル
1260
25


PHP チュートリアル
1207
29

