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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python-ML】SKlearn库线性回归器LinearRegression

發布時間:2025/4/16 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python-ML】SKlearn库线性回归器LinearRegression 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*- ''' Created on 2018年1月24日 @author: Jason.F @summary: 有監督回歸學習-基于最小二乘法構建線性回歸模型 最小二乘法(Ordinary Least Square,LOS),估計回歸曲線的參數,使得回歸曲線到樣本點垂直距離(殘差或誤差)的平方和最小 ''' import pandas as pd import numpy as np import time import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegressiondef lin_regplot(X,y,model):plt.scatter(X,y,c='blue')plt.plot(X,model.predict(X),color='red')return None ''' class LinearRegressionGD(object):def __init__(self,eta=0.01,n_iter=20):self.eta=etaself.n_iter=n_iterdef fit(self,X,y):self.w_=np.zeros(1+X.shape[1])self.costs_=[]for _ in range(self.n_iter):output=self.net_input(X)errors=(y-output)self.w_[1:] += self.eta * X.T.dot(errors)self.w_[0] += self.eta * errors.sum()cost=(errors ** 2).sum() /2.0self.costs_.append(cost)return selfdef net_input(self,X):#calculate net inputreturn np.dot(X,self.w_[1:])+self.w_[0]def predict(self,X):#return class label after unit stepreturn self.net_input(X) ''' if __name__ == "__main__": start = time.clock() #導入波士頓房屋數據集df=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data',header=None,sep='\s+')df.columns=['CRIM','ZM','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT','MEDV']X=df[['RM']].values#房間數y=df['MEDV'].values#房間價格'''#標準化sc_x=StandardScaler()sc_y=StandardScaler()X_std=sc_x.fit_transform(X)y_std=sc_y.fit_transform(y)#訓練lr=LinearRegressionGD()lr.fit(X_std,y_std)#梯度下降收斂驗證plt.plot(range(1,len(lr.costs_)+1),lr.costs_)plt.ylabel('SSE')plt.xlabel('Epoch')plt.show()#可視化房間數和房屋價格之間的關系lin_regplot(X_std, y_std, lr)plt.xlabel('Average number of rooms[RM](standardized)')plt.ylabel('Price in $1000\'s[MEDV](standardized)')plt.show()#預測num_rooms_std=sc_x.transform([5.0])price_std = lr.predict(num_rooms_std)print ('Price in $1000\'s:%.3f'%sc_y.inverse_transform(price_std))print ('Slope:%.3f'%lr.w_[1])print ('Intercept:%.3f'%lr.w_[0])'''#利用sklearn庫中的線性回歸模型slr=LinearRegression()slr.fit(X,y)print ('Slope:%.3f'%slr.coef_[0])print ('Intercept:%.3f'%slr.intercept_)lin_regplot(X, y, slr)plt.xlabel('Average number of rooms[RM](standardized)')plt.ylabel('Price in $1000\'s[MEDV](standardized)')plt.show()end = time.clock() print('finish all in %s' % str(end - start))

結果:

Slope:9.102 Intercept:-34.671 finish all in 44.0196931201

總結

以上是生活随笔為你收集整理的【Python-ML】SKlearn库线性回归器LinearRegression的全部內容,希望文章能夠幫你解決所遇到的問題。

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