電話会社の顧客解約データセットの分析
大丈夫! やろう.
だから、私は不均衡データにもう少し慣れるためにこの話を用意しました。
データセットは次のリンクで利用可能です:
それでは、それに右に飛び込みましょう。
最終的な目標は、顧客が”解約”するかどうかを予測するために異なるモデルを評価することです。
for does not family churnは、特定の期間内にサブスクリプションを中止したサービス加入者の割合(または数)として最も一般的に表されます。
まず、Eda(探索的データ分析)を実行しましょう)
高齢者を除いて、データ型は問題ないようでしたが、それも要因になるはずです。 (疑問がある場合は、datasetリンクとそれのライブラリを確認してくださ)
データセットの概要を視覚化してみましょう
TotalCharges列にはいくつかのNaNがあるので、それらの行をもう少し掘り下げます
NaN値を持つ行の数は非常に小さいので(データの1,5%)、すべての それらはchurn=”NO”であり、これはデータで過剰に表現されています。 作業データからこれらの行を削除するだけです
カテゴリ列の分布の棒グラフを見てみましょう
次に、従属変数をプロットしましょう
前に述べたように、従属変数のデータの不均衡を見ることができます。 モデリングする前に、後でそれに対処する必要があります。
ここで、量的変数の箱ひげ図をプロットしましょう。
箱ひげ図には、分布の外れ値は表示されません。
ここで、量的変数の相関を見てみましょう:
合計料金と月額料金、合計料金とテニュアの間には高い正の相関関係があります。
それでは、定量的特徴のチャーン特徴を考慮したヒストグラムをいくつかプロットしましょう:
上の画像は、保有期間が増加するにつれて解約率が減少することを示しており、これは会社が長時間の顧客を維持できることを示しています。👏👏👏
上記のプロットは、次のような機能のヒントを示しています:
- テレビをストリーミングする機能と映画をストリーミングする機能の間には大きな違いはないようです;
- オンラインセキュリティ、デバイス保護、技術サポートは、ヒストグラムと解約x非解約の関係が非常によく似ています。
さらに、定量的な特徴(テニュア、月額料金、合計料金)を含む二変量分析を掘り下げるために、特徴ごとに5つの異なるレベルに分割して因子に変
前に述べたように解約の割合は、古い顧客が維持することが困難ではないことを示している月の数と減少します
この棒グラフは、顧客に対して行われた合計料金が高いほど、解約率が減少することを示しています。 長い時間の顧客により高い”総充満”があり、私達が前に見たように、長い時間の顧客により低い解約のパーセントがあることを考えればそれは理にかなっ
このバープロットは、もう少し直感的であり、より高い月額料金は、より高い解約率を持っている傾向があることを示しています。
モデリング
データをよりよく理解したので、将来の顧客解約を予測するためのモデリングの準備を始めましょう。
私たちが取り組んでいる即時のトラブルに応じて、このプロセスをステップに分割しましょう:
- 不均衡の処理
- アルゴリズムとメトリックの定義
- アルゴリズムのテスト
- 特徴選択の処理
- 最終結果
不均衡の処理⚖ ️
従属変数が不均衡になる前に見たように。 私たちはこの問題に取り組むための多くの選択肢を持っています:
- オーバーサンプリング
- アンダーサンプリング
- 異なる重量コストを使用して
- など。
ここでは、アンダー、オーバーサンプリング、スモートテクニックを試してみます。
アルゴリズムとメトリックの定義
さて、分類問題を扱っているので、すなわち 一日の終わりには、”解約”または”解約しない”のいずれかしか予測できないため、この特定の”レルム”の下でアルゴリズムを選択する必要があります。 それは次のようないくつかのオプションを私たちに残:
- Naive-Bayes
- ロジスティック回帰
- 決定木(またはランダムフォレスト)
- SVM
- GBM
メトリックを選択するには、問題を理解する必要があります。 例えば,
- “偽陽性または偽陰性は、より有害な影響を持っていますか?”🤔
私たちの場合、偽陽性または偽陰性に対して異なる重みがないように見えるため、比較メトリックとして精度を使用します。
アルゴリズムのテスト
5つのアルゴリズム(Naive-Bayes、Logistic regression、Random Forest、SVM、LightGBM)を展開します。 10-cross fold validationを使用し、各アルゴリズムを10回実行して結果を計算します。
3つのデータ(アンダーサンプリング、オーバーサンプリング、スモートを使用したバランス)すべてに対してこの方法論を繰り返します。
アルゴリズムの結果を使用して、単一の精度Dataframeを構築します
ここで、各アルゴリズムと各平衡データの箱ひげ図を投影します
上の画像は、過剰サンプル平衡データとSMOTE平衡データの両方のランダムフォレストが最良の結果を示したことを示しています:87%の精度。
特徴選択の扱い
最良の結果を示したアルゴリズムとバランスの取れたデータが得られたので、特徴選択を行うことによって精度を向上させたり、アル
だから私はSMOTE残高データで作業することを選択します。
varImp関数を使用して、ランダムフォレストアルゴリズムのチャーンを最もよく表す機能を見てみましょう
最初の4つの機能は、EDAの間に見た視覚化を考慮すると、かなり直感的に見えました。
だから我々は2他のデータフレームを作成します,最初の4つの機能を持つものとSreamingテレビまでのすべてのトップ機能を持つもの.
それでは、10-cvを10回繰り返してランダムな森を実行してみましょう。
次に、3つのデータフレームのそれぞれの精度分布を持つ新しい箱ひげ図を作成しましょう。
したがって、mid_featuresとfull dataの結果はより良いように見えます。 それらが大幅に異なるかどうかをテストしましょう
したがって、統計的検定は帰無仮説を拒否するため、full_dataとmid_features_dataの精度分布は大きく異なります。
だから、実際にはすべての列を維持して、この機能の選択を終了します。 機能を削除することにより、精度の大幅な損失がまだあるので。
最終結果
最後の予測モデルを要約しましょう。 データのバランスをとる方法としてSMOTEを使用し、Random Forestをアルゴリズムとして10回繰り返し10回のクロスフォールド検証を実行して、平均精度87%を得ました。
また、次のような顧客データからいくつかの興味深い側面をキャプチャしました:
- 同社は、古い時間の顧客を維持して”ok”をやっているようです。 エネルギーは新しい顧客のための作戦の実施のより多くの焦点でなければならない。
- 月別タイプの契約は、他のタイプの契約と比較して、高い月額料金であっても解約率が高くなります。
- 光ファイバーにインターネットサービスがある顧客のためのDSLより高いかき回す率があります。
- 光ファイバーが、より高いかき回す率を持っている間、またより高い総充満計算を提供します。 したがって、クライアントが光ファイバーサービスに満足していない理由についてのより良い調査が重要です。
はい、私たちはそれを作りました! 私はあなたが乗り心地を楽しんだことを願って、私はあなたの考えを聞いて幸せです。
今後のステップ
思い出させるように、このデータセットでは次のような他のことがまだたくさんあります:
- 新しいアルゴリズムを試してみてください
- いくつかの調整パラメータを最適化して、精度を向上させることができるかどうかを確認します。