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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基于线性回归的波士顿房价预测

發布時間:2024/1/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于线性回归的波士顿房价预测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

折線圖代碼?

#-*-coding:utf-8-*- import pandas as pd import numpy as np import matplotlib.pyplot as plt #加載數據 from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression#正規方程求解的線性回歸 from sklearn.linear_model import SGDRegressor#sgd線性回歸,隨機梯度下降線性回歸 from sklearn.linear_model import Ridge#嶺回歸算法 #默認不支持中文,需要配置RC參數 plt.rcParams['font.sans-serif']='SimHei' #設置字體之后不支持,需要去設置RC參數更改編碼 plt.rcParams['axes.unicode_minus']=False def show_res(y_test,y_predict):"""結果展示:param x_test: 測試集目標值的真實值:param y_predict: 預測值:return: None"""#1、畫布plt.figure()#2、繪圖折線圖x=np.arange(0,len(y_test))plt.plot(x, y_test, marker='*')plt.plot(x,y_predict,marker='o')#增加標題plt.title('房價預測與真實值的走勢')#坐標軸plt.xlabel('x軸')plt.ylabel('房價')#圖例plt.legend(['真實值','預測值'])#3、展示plt.show() #函數自帶數據 boston=load_boston() print(boston) #獲取tezhengzhi feature=boston['data'] feature_names=boston['feature_names'] target=boston['target'] #將波士頓房價數據保存到本地 #將特征值轉化為DF # df_feature=pd.DataFrame(feature,columns=feature_names) # #將目標值轉化為df # df_target=pd.DataFrame(target,columns=['MEDV']) # #將特征值df與目標值df拼接,在進行保存 # df_data=pd.concat((df_feature,df_target),axis=1) # df_data.to_excel('./boston.xlsx',index=False) #拆分數據集-拆分成訓練集與測試集,特征值與目標值 #測試集占比test_size=0.3 #返回值--先特征值(先訓練集,在測試集),在目標值(先訓練集,在測試集) #random_state=1(True)固定拆分,準確率不同是因為拆分數據的隨機性 x_train,x_test,y_train,y_test=train_test_split(feature,target,test_size=0.3,random_state=1) print(x_train,x_test,y_train,y_test) #檢測缺失值--沒有缺失值 #檢測異常值--沒有異常值 #目標值不需要標準化,特征值需要標準化 stand=StandardScaler() #先計算均值與標準差,在進行轉化 # x_train=stand.fit_transform(x_train) # x_test=stand.fit_transform(x_test) stand.fit(x_train)#計算指標 x_train=stand.fit_transform(x_train) x_test=stand.fit_transform(x_test) #正規方程進行求解的線性回歸-適用于特征數據較少的數據 #進行構建模型--線性模型-- lr=LinearRegression() #訓練數據 lr.fit(x_train,y_train) #預測數據 y_predict=lr.predict(x_test) print(y_predict) #計算準確率 score=lr.score(x_test,y_test)#sgd=SGDRegressor()#適用于特征較多,數據量較大的情況 #默認的學習率為0.01 #如果想要更改學習率-- # 1、learning_rate='constant' #2、eta0=學習率 #梯度方向--不需要考慮--沿著損失減少的方向 #學習率如何設置,設置合適的大小,(0.1,0.01,0.001) #學習率過大會造成梯度爆炸(很少出現),經常出現在復雜神經網絡中- #梯度爆炸-》損失、準確率,全變成NAN類型 #學習率過小,會造成原地打轉,梯度消失--損失不減少 #進行自我學習修正的過程 #訓練數據 # sgd.fit(x_train,y_train) # #預測數據 # y_predict=sgd.predict(x_test) # print(y_predict) # #計算準確率 # score=sgd.score(x_test,y_test) # #獲取權重與偏置 # weight=sgd.coef_ # bias=sgd.intercept_ #Ridge()線性回歸+L2正則化--在小的數據集上,效果會比LinearRegression準確 #L2正則化將權重降為接近0,或者刪除無效的特征值 rd=Ridge() #訓練數據 rd.fit(x_train,y_train) #預測數據 y_predict=rd.predict(x_test) print(y_predict) #計算準確率 score=rd.score(x_test,y_test) print(score) #獲取權重與偏置 # weight=rd.coef_ # bias=rd.intercept_ # print(weight,bias,score) # #繪圖展示 show_res(y_test,y_predict)

?

散點圖和曲線圖結合并且排序優化?

#-*-coding:utf-8-*- import pandas as pd import numpy as np import matplotlib.pyplot as plt #加載數據 from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression#正規方程求解的線性回歸 from sklearn.linear_model import SGDRegressor#sgd線性回歸,隨機梯度下降線性回歸 from sklearn.linear_model import Ridge#嶺回歸算法 #默認不支持中文,需要配置RC參數 plt.rcParams['font.sans-serif']='SimHei' #設置字體之后不支持,需要去設置RC參數更改編碼 plt.rcParams['axes.unicode_minus']=False def show_res(y_test,y_predict):"""結果展示:param x_test: 測試集目標值的真實值:param y_predict: 預測值:return: None"""#1、畫布plt.figure()#2、繪圖折線圖x=np.arange(0,len(y_test))res=np.argsort(y_predict)# 以列表推導式的形式來獲取x 按照z 排序規則進行排序之后的結果y_test= [y_test[i] for i in res]y_predict.sort(axis=0)#排序不能用原變量命名print(2,type(y_predict))plt.scatter(x, y_test, s=60, c='red', marker='.', alpha=1)plt.plot(x, y_predict, c='green')#plt.plot(x,y_predict)#增加標題plt.title('房價預測與真實值的走勢')#坐標軸plt.xlabel('x軸')plt.ylabel('房價')#圖例plt.legend(['真實值','預測值'])#3、展示plt.show() #函數自帶數據 boston=load_boston() print(boston) #獲取tezhengzhi feature=boston['data'] feature_names=boston['feature_names'] target=boston['target'] #將波士頓房價數據保存到本地 #將特征值轉化為DF # df_feature=pd.DataFrame(feature,columns=feature_names) # #將目標值轉化為df # df_target=pd.DataFrame(target,columns=['MEDV']) # #將特征值df與目標值df拼接,在進行保存 # df_data=pd.concat((df_feature,df_target),axis=1) # df_data.to_excel('./boston.xlsx',index=False) #拆分數據集-拆分成訓練集與測試集,特征值與目標值 #測試集占比test_size=0.3 #返回值--先特征值(先訓練集,在測試集),在目標值(先訓練集,在測試集) #random_state=1(True)固定拆分,準確率不同是因為拆分數據的隨機性 x_train,x_test,y_train,y_test=train_test_split(feature,target,test_size=0.3,random_state=1) print(x_train,x_test,y_train,y_test) #檢測缺失值--沒有缺失值 #檢測異常值--沒有異常值 #目標值不需要標準化,特征值需要標準化 stand=StandardScaler() #先計算均值與標準差,在進行轉化 # x_train=stand.fit_transform(x_train) # x_test=stand.fit_transform(x_test) stand.fit(x_train)#計算指標 x_train=stand.fit_transform(x_train) x_test=stand.fit_transform(x_test) #正規方程進行求解的線性回歸-適用于特征數據較少的數據 #進行構建模型--線性模型-- lr=LinearRegression() #訓練數據 lr.fit(x_train,y_train) #預測數據 y_predict=lr.predict(x_test) print(y_predict) #計算準確率 score=lr.score(x_test,y_test)#sgd=SGDRegressor()#適用于特征較多,數據量較大的情況 #默認的學習率為0.01 #如果想要更改學習率-- # 1、learning_rate='constant' #2、eta0=學習率 #梯度方向--不需要考慮--沿著損失減少的方向 #學習率如何設置,設置合適的大小,(0.1,0.01,0.001) #學習率過大會造成梯度爆炸(很少出現),經常出現在復雜神經網絡中- #梯度爆炸-》損失、準確率,全變成NAN類型 #學習率過小,會造成原地打轉,梯度消失--損失不減少 #進行自我學習修正的過程 #訓練數據 # sgd.fit(x_train,y_train) # #預測數據 # y_predict=sgd.predict(x_test) # print(y_predict) # #計算準確率 # score=sgd.score(x_test,y_test) # #獲取權重與偏置 # weight=sgd.coef_ # bias=sgd.intercept_ #Ridge()線性回歸+L2正則化--在小的數據集上,效果會比LinearRegression準確 #L2正則化將權重降為接近0,或者刪除無效的特征值 rd=Ridge() #訓練數據 rd.fit(x_train,y_train) #預測數據 y_predict=rd.predict(x_test) print(y_predict) #計算準確率 score=rd.score(x_test,y_test) print(score) #獲取權重與偏置 # weight=rd.coef_ # bias=rd.intercept_ # print(weight,bias,score) # #繪圖展示 show_res(y_test,y_predict)

總結

以上是生活随笔為你收集整理的基于线性回归的波士顿房价预测的全部內容,希望文章能夠幫你解決所遇到的問題。

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