私はPythonが初めてで、各属性の相関係数とターゲット値との間のグラフをプロットする必要があります。膨大な数の値を持つ入力データセットがあります。以下に、サンプル データセットの値を示します。特定の消費者が会社を離れるかどうかを予測する必要があるため、結果列がターゲット変数です。
SALARY DUE RENT CALLSPERDAY CALL DURATION RESULT
238790 7 109354 0 6 YES
56004 0 204611 28 15 NO
671672 27 371953 0 4 NO
786035 1 421999 19 11 YES
89684 2 503335 25 8 NO
904285 3 522554 0 13 YES
12072 4 307649 4 11 NO
23621 19 389157 0 4 YES
34769 11 291214 1 13 YES
945835 23 515777 0 5 NO
ここで、ご覧のとおり、結果列は文字列で、残りの列は整数です。結果と同様に、文字列値を持つ他の列 (サンプルには記載されていません) もいくつかあります。ここでは、文字列値と整数値の両方を持つ列の値を計算する必要があります。辞書を使用して、文字列値を持つ各列に値を割り当てました。例: 結果列には「はい」または「いいえ」があります。したがって、以下のように値が割り当てられます。
D = {'NO': 0, 'YES': 1}
ラムダ関数を使用して、データセットの各列をループし、NO を 0 に、YES を 1 に置き換えました。式を使用して相関係数を計算しようとしました。
pearsonr(S.SALARY,targetVarible)
ここで、S はすべての値を保持するデータフレームです。同様に、データセットのすべての列をループして、各列の相関係数をターゲット変数に対して計算します。
これは相関係数を計算する効率的な方法ですか? 以下のように値を取得しているため (0.088327739664096655, 1.1787456108540725e-25) e^-25 が小さすぎるようです。
他に計算する方法はありますか?整数値を持つ他の列と比較したときに整数として扱うことができるように、文字列値を入力する他の方法を提案しますか(私が使用した辞書とラムダ以外?)
また、同じコードを使用して棒グラフをプロットする必要があります。from matplotlib import pyplot を plt ライブラリとして使用する予定です。
棒グラフをプロットする他の関数を提案しますか。ほとんどの場合、sklearnライブラリ、numpy、およびpandasを使用して、それらから既存の関数を使用しています。誰かが私を助けてくれれば、それは素晴らしいことです。ありがとう。