[scikit-learn 机器学习] 2. 简单线性回归
生活随笔
收集整理的這篇文章主要介紹了
[scikit-learn 机器学习] 2. 简单线性回归
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 簡單線性回歸
- 2. 評價模型
本文為 scikit-learn機器學習(第2版)學習筆記
1. 簡單線性回歸
import numpy as np import matplotlib.pyplot as pltX = np.array([[6],[8],[10],[14],[18]]) y = np.array([7,9,13,17.5,18]) plt.title("pizza diameter vs price") plt.xlabel('diameter') plt.ylabel('price') plt.plot(X,y,'r.') # r表示顏色紅 from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(X,y)test_pizza = np.array([[12]]) pred_price = model.predict(test_pizza) pred_price # array([13.68103448])- 誤差 ∑(yi?f(xi))2\sum(y_i-f(x_i))^2∑(yi??f(xi?))2
- 方差 var(x)=∑(xi?xˉ)2n?1var(x) = \frac{\sum(x_i-\bar x)^2}{n-1}var(x)=n?1∑(xi??xˉ)2?
- 協方差 cov(x,y)=∑(xi?xˉ)(yi?yˉ)n?1cov(x,y) = \frac{\sum(x_i-\bar x)(y_i - \bar y)}{n-1}cov(x,y)=n?1∑(xi??xˉ)(yi??yˉ?)?
假設模型為 y=a+bxy = a+bxy=a+bx
b=cov(x,y)var(x)=22.65/23.2=0.98b = \frac{cov(x,y)}{var(x)} = 22.65/23.2 = 0.98b=var(x)cov(x,y)?=22.65/23.2=0.98
a=yˉ?bxˉ=12.9?0.98?11.2=1.92a = \bar y - b \bar x = 12.9-0.98*11.2=1.92a=yˉ??bxˉ=12.9?0.98?11.2=1.92
模型為 y=1.92+0.98xy = 1.92+0.98xy=1.92+0.98x
2. 評價模型
R2=1?∑(yi?f(xi))2∑(yi?yˉ)2R^2 = 1-\frac{\sum(y_i-f(x_i))^2}{\sum(y_i-\bar y)^2}R2=1?∑(yi??yˉ?)2∑(yi??f(xi?))2?
X_test = np.array([8,9,11,16,12]).reshape(-1,1) y_test = [11,8.5,15,18,11] r_squared = model.score(X_test, y_test) r_squared # 0.6620052929422553總結
以上是生活随笔為你收集整理的[scikit-learn 机器学习] 2. 简单线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Hands On ML] 6. 决策树
- 下一篇: LeetCode 716. 最大栈(双栈