Pythonでのロジスティック回帰-データの再構築

組織が調査を実施するときはいつでも、顧客からできるだけ多くの情報を収集しようとします。この情報は、後で組織にとって何らかの形で役立つと考えています。現在の問題を解決するには、問題に直接関連する情報を収集する必要があります。

すべてのフィールドの表示

それでは、私たちに役立つデータフィールドを選択する方法を見てみましょう。コードエディタで次のステートメントを実行します。

In [6]: print(list(df.columns))

次の出力が表示されます-

['age', 'job', 'marital', 'education', 'default', 'housing', 'loan', 
'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays', 
'previous', 'poutcome', 'emp_var_rate', 'cons_price_idx', 'cons_conf_idx', 
'euribor3m', 'nr_employed', 'y']

出力には、データベース内のすべての列の名前が表示されます。最後の列「y」は、この顧客が銀行に定期預金を持っているかどうかを示すブール値です。このフィールドの値は「y」または「n」のいずれかです。データの一部としてダウンロードされたbanks-name.txtファイルの各列の説明と目的を読むことができます。

不要なフィールドの排除

列名を調べると、一部のフィールドが目前の問題にとって重要ではないことがわかります。たとえば、month, day_of_week、キャンペーンなどは私たちには役に立たない。これらのフィールドをデータベースから削除します。列をドロップするには、以下に示すようにdropコマンドを使用します-

In [8]: #drop columns which are not needed.
   df.drop(df.columns[[0, 3, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19]], 
   axis = 1, inplace = True)

このコマンドは、列番号0、3、7、8などを削除することを示しています。インデックスが正しく選択されていることを確認するには、次のステートメントを使用します-

In [7]: df.columns[9]
Out[7]: 'day_of_week'

これにより、指定されたインデックスの列名が出力されます。

不要な列を削除した後、headステートメントでデータを調べます。画面出力はここに示されています-

In [9]: df.head()
Out[9]:
      job   marital  default  housing  loan  poutcome    y
0     blue-collar    married  unknown yes no nonexistent 0
1     technician     married  no    no    no nonexistent 0
2     management     single   no    yes   no success     1
3     services       married  no    no    no nonexistent 0
4     retired        married  no    yes   no success     1

現在、データの分析と予測に重要と思われる分野しかありません。の重要性Data Scientistこの段階で思い浮かびます。データサイエンティストは、モデル構築に適切な列を選択する必要があります。

たとえば、 job一見、データベースに含めるようにすべての人を納得させることはできないかもしれませんが、それは非常に有用な分野になります。すべてのタイプの顧客がTDを開くわけではありません。低所得者はTDを開かないかもしれませんが、高所得者は通常、余剰金をTDに預けます。したがって、このシナリオでは、ジョブのタイプが非常に重要になります。同様に、分析に関連すると思われる列を慎重に選択してください。

次の章では、モデルを構築するためのデータを準備します。