相関行列
CoddyのMachine Learningジャーニー「機械学習のための統計」セクションの一部。レッスン 31/64。
特徴量を選ぶということは、すべての列とターゲットを一度に比較することです。df.corr(numeric_only=True)は、テキスト列をスキップして相関行列を作成します。
laptops = pd.DataFrame({
"model": ["Arc", "Bolt", "Cove", "Dune", "Echo", "Flux", "Gale"],
"ram_gb": [8, 16, 8, 32, 16, 16, 32],
"weight_kg": [2.3, 1.4, 2.0, 1.1, 1.8, 1.2, 1.6],
"battery_h": [7, 9, 10, 13, 6, 11, 8],
"price": [650, 1100, 700, 1600, 900, 1350, 1200],
})
corr = laptops.corr(numeric_only=True)各セルは、その行と列のrです。最も強い特徴量を見つけるには、符号を無視して価格列を大きさで順位付けします。
ranked = np.abs(corr["price"]).sort_values(ascending=False)
print(ranked.index[1])これは次のように出力されます:
weight_kgインデックス0は、1にあるpriceそのものです。軽量のノートパソコンほど高価です。-0.95が最も強い関連性を示しています。
チャレンジ
中級あるエネルギー会社が冬に24軒の住宅を調査しました。homes.csvには、homeコードと、数値列area_m2、insulation_cm、residents、outside_temp_c、heating_kwhがあります。プログラムは対象列を読み込みます。
- 相関行列の対象列を、小数点以下2桁に丸めて出力します。
- 以下のように、
Strongest:、最も強い関連のある他の列、およびそのrを出力します。
別の調査で、対象がheating_kwhの場合:
windows 0.72
floors 0.68
age_years 0.23
heating_kwh 1.00
Name: heating_kwh, dtype: float64
Strongest: windows (r = 0.72)自分で試してみよう
import numpy as np
import pandas as pd
homes = pd.read_csv("homes.csv")
target = input()
# 以下にコードを記述してください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
機械学習のための統計のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ