日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[scikit-learn 机器学习] 2. 简单线性回归

發布時間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [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
print("誤差平方和:%.2f" % np.mean((model.predict(X)-y)**2)) 誤差平方和:1.75
  • 方差 var(x)=∑(xi?xˉ)2n?1var(x) = \frac{\sum(x_i-\bar x)^2}{n-1}var(x)=n?1(xi??xˉ)2?
# 方差 x_bar = X.mean() # 11.2 variance = ((X-x_bar)**2).sum()/(len(X)-1) variance # 23.2np.var(X, ddof=1) # np內置的方差,ddof為校正選項 ################### ddof : int, optional"Delta Degrees of Freedom": the divisor used in the calculation is``N - ddof``, where ``N`` represents the number of elements. Bydefault `ddof` is zero.
  • 協方差 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_bar = y.mean() covariance = np.multiply((X-x_bar).transpose(), y-y_bar).sum()/(len(X)-1) covariance # 22.65np.cov(X.transpose(), y) array([[23.2 , 22.65],[22.65, 24.3 ]])

假設模型為 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. 简单线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。