データサイエンス-線形回帰


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」のラベルを付けます

出力:

線形回帰-1つの変数-最小二乗

この線はCalorie_Burnageを正確に予測できると思いますか?

変数Average_Pulseだけでは、Calorie_Burnageを正確に予測するには不十分であることを示します。