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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

scikit-learn学习笔记(三)Generalized Linear Models ( 广义线性模型 )

發布時間:2024/1/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scikit-learn学习笔记(三)Generalized Linear Models ( 广义线性模型 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Generalized Linear Models ( 廣義線性模型 )

以下是一組用于回歸的方法,其中目標值預期是輸入變量的線性組合。在數學概念中,如果??是預測值。

在整個模塊中,我們指定向量??as?coef_ 和??as??intercept_

要使用廣義線性回歸執行分類,請參閱 Logistic 回歸。

Ordinary Least Squares ( 普通最小二乘法?)

LinearRegression?線性回歸擬合具有系數??的線性模型,以最小化數據集中observed responses ( ?觀察到的響應?)之間的殘差平方和responses predicted by the linear approximation ( 通過線性近似預測的響應?):

LinearRegression ( 線性回歸?) 將采用其擬合方法數組 X , y 并將其線性模型的系數 ?存儲在其coef_ 成員中:

>>> from sklearn import linear_model >>> reg = linear_model.LinearRegression() >>> reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False) >>> reg.coef_ array([ 0.5,? 0.5])

然而,普通最小二乘的系數估計依賴于模型項的獨立性。當術語相關并且設計矩陣 ?的列具有近似的線性相關性時,設計矩陣變得接近于單數,并且因此最小二乘估計對觀察到的響應中的隨機誤差變得高度敏感,產生大的方差。例如,當沒有實驗設計收集數據時,可能會出現這種多重共線性的情況。

線性模型例子:

import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model# Load the diabetes dataset diabetes = datasets.load_diabetes()# Use only one feature diabetes_X = diabetes.data[:, np.newaxis, 2]# Split the data into training/testing sets diabetes_X_train = diabetes_X[:-20] diabetes_X_test = diabetes_X[-20:]# Split the targets into training/testing sets diabetes_y_train = diabetes.target[:-20] diabetes_y_test = diabetes.target[-20:]# Create linear regression object regr = linear_model.LinearRegression()# Train the model using the training sets regr.fit(diabetes_X_train, diabetes_y_train)# The coefficients print('Coefficients: \n', regr.coef_) # The mean squared error print("Mean squared error: %.2f"% np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2)) # Explained variance score: 1 is perfect prediction print('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))# Plot outputs plt.scatter(diabetes_X_test, diabetes_y_test, color='black') plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',linewidth=3)plt.xticks(()) plt.yticks(())plt.show()

Ordinary Least Squares Complexity ( 普通最小二乘法復雜度 )

該方法使用 X singular value decomposition ( 奇異值分解?)?來計算最小二乘解。如果Xsize(n, p) 的矩陣,則該方法的成本為 ,假設


自己寫的一個例子:

1. 數據格式

x,y
1,2
2,4
3,6
4,9
5,10
6,12
7,15
8,16
9,18
10,19
12,23
13,26
14,28
15,31
20,40
21,50

2.代碼

import matplotlib.pyplot as plt
import pandas as pd
from sklearn import linear_model

data = pd.read_csv('F:\\tempdata\\python\ml\\linear.csv')
print data.describe()

X_train = data['x'].values.reshape(-1, 1)
print X_train
Y_train = data['y']
print '***************'
regr = linear_model.LinearRegression()


regr.fit(X_train, Y_train)
print '***************'
print regr.coef_
print regr.intercept_

plt.scatter(X_train, Y_train,? color='black')

diabetes_X_test = [[2],[5],[10]]
print diabetes_X_test
diabetes_y_test = regr.predict(diabetes_X_test)
print regr.score(diabetes_X_test, diabetes_y_test)

plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',linewidth=3)

plt.xticks(())
plt.yticks(())

plt.show()

3.結果

?????????????? x????????? y
count? 19.000000? 19.000000
mean?? 13.421053? 28.157895
std??? 11.211679? 24.356754
min???? 1.000000?? 2.000000
25%???? 5.500000? 11.000000
50%??? 10.000000? 19.000000
75%??? 17.500000? 35.500000
max??? 40.000000? 84.000000
[[ 1]
?[ 2]
?[ 3]
?...,
?[30]
?[35]
?[40]]
***************
***************
[ 2.16417772]
-0.8876482903
[[2], [5], [10]]
1.0

總結

以上是生活随笔為你收集整理的scikit-learn学习笔记(三)Generalized Linear Models ( 广义线性模型 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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