データサイエンス-線形回帰
Calorie_Burnageに影響を与える重要な変数が1つありません。これは、トレーニングセッションの期間です。
Average_Pulseと組み合わせた期間は、Calorie_Burnageをより正確に説明します。
線形回帰
回帰という用語は、変数間の関係を見つけようとするときに使用されます。
機械学習と統計モデリングでは、その関係を使用してイベントの結果を予測します。
このモジュールでは、次の質問について説明します。
- Average_PulseとDurationはCalorie_Burnageに関連していると結論付けることができますか?
- Average_PulseとDurationを使用してCalorie_Burnageを予測できますか?
最小二乗法
線形回帰は最小二乗法を使用します。
概念は、プロットされたすべてのデータポイントを通る線を引くことです。線は、すべてのデータポイントまでの距離が最小になるように配置されます。
この距離は「残差」または「エラー」と呼ばれます。
赤い破線は、データポイントから描画された数学関数までの距離を表します。
1つの説明変数を使用した線形回帰
この例では、線形回帰を使用して、Average_PulseでCalorie_Burnageを予測しようとします。
例
import pandas as pd
import matplotlib.pyplot as plt
from scipy
import stats
full_health_data = pd.read_csv("data.csv", header=0, sep=",")
x = full_health_data["Average_Pulse"]
y = full_health_data ["Calorie_Burnage"]
slope, intercept, r, p, std_err = stats.linregress(x, y)
def myfunc(x):
return
slope * x + intercept
mymodel = list(map(myfunc, x))
plt.scatter(x, y)
plt.plot(x, slope * x + intercept)
plt.ylim(ymin=0, ymax=2000)
plt.xlim(xmin=0, xmax=200)
plt.xlabel("Average_Pulse")
plt.ylabel ("Calorie_Burnage")
plt.show()
説明された例:
- 必要なモジュールをインポートします:Pandas、matplotlib、Scipy
- Average_Pulseをxとして分離します。Calorie_burnageをyとして分離します
- 重要なキー値を次のように取得します:slope、intercept、r、p、std_err = stats.linregress(x、y)
- 傾きと切片の値を使用して新しい値を返す関数を作成します。この新しい値は、対応するx値がy軸のどこに配置されるかを表します
- 関数を介してx配列の各値を実行します。これにより、y軸に新しい値を持つ新しい配列が作成されます。mymodel= list(map(myfunc、x))
- 元の散布図を描画します:plt.scatter(x、y)
- 線形回帰の線を引く:plt.plot(x、mymodel)
- 軸の最大値と最小値を定義します
- 軸に「Average_Pulse」と「Calorie_Burnage」のラベルを付けます
出力:
この線はCalorie_Burnageを正確に予測できると思いますか?
変数Average_Pulseだけでは、Calorie_Burnageを正確に予測するには不十分であることを示します。