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

歡迎訪問 生活随笔!

生活随笔

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

python

【Python】Sklearn线性回归模型预测波士顿房价并绘图

發布時間:2025/3/15 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】Sklearn线性回归模型预测波士顿房价并绘图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

波士頓房價

這是 sklearn.datasets 里的一種 Toy Dataset ,包含503個美國波士頓房價的觀測值,是內置的小數據集,也是研究回歸算法的優秀數據集。

Python編程實現

import matplotlib.pyplot as plt import matplotlib.font_manager as fm import numpy as np import pandas as pd from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn import metrics from sklearn.metrics import r2_score# 從讀取的房價數據存儲在boston變量中 boston = load_boston()# 打印boston包含的內容 print(boston.keys())# 打印data的變量名 print(boston.feature_names)# 將data轉換為DataFrame格式以方便顯示 bos = pd.DataFrame(boston.data) # data的第6列數據為RM print(bos[5].head())# 將data轉換為DataFrame格式以方便顯示 bos_target = pd.DataFrame(boston.target) print(bos_target.head())# 選取data中的RM變量 x = bos.iloc[:, 5:6] # 設定target為y y = bos_target # 定義自定義字體,文件名是系統中文字體 myfont = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc') plt.scatter(x, y) # x軸標簽設定文字為中文msyh格式 plt.xlabel(u'住宅平均房間數', fontproperties=myfont) # y軸標簽設定文字為中文msyh格式 plt.ylabel(u'房地產價格', fontproperties=myfont) # 標題 plt.title(u'RM與MEDV的關系', fontproperties=myfont) plt.show()# 把x、y轉化為數組形式,便于計算 x = np.array(x.values) y = np.array(y.values) # 以25%的數據構建測試樣本,剩余作為訓練樣本 x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25) print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)# 設定回歸算法 lr = LinearRegression() # 使用訓練數據進行參數求解 lr.fit(x_train, y_train) # LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False) print('求解系數為:', lr.intercept_) print('求解系數為:', lr.coef_)# 對測試集的預測 y_hat = lr.predict(x_test) # 打印前10個預測值 y_hat[0:9] # y_test與y_hat的可視化 # 設置圖片尺寸 plt.figure(figsize=(10, 6)) # 創建t變量 t = np.arange(len(x_test)) # 繪制y_test曲線 plt.plot(t, y_test, 'r', linewidth=2, label='y_test') # 繪制y_hat曲線 plt.plot(t, y_hat, 'g', linewidth=2, label='y_train') # 設置圖例 plt.legend() plt.show()# 擬合優度R2的輸出方法1 print("r2:", lr.score(x_test, y_test))# 擬合優度R2的輸出方法2 print("r2_score:", r2_score(x_test, y_hat))# 用Scikit_learn計算MAE print("MAE:", metrics.mean_absolute_error(y_test, y_hat))# 用Scikit_learn計算MSE print("MSE:", metrics.mean_squared_error(y_test, y_hat))# 用Scikit_learn計算RMSE print("RMSE:", np.sqrt(metrics.mean_squared_error(y_test, y_hat)))

繪圖

輸出

dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename']) ['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO''B' 'LSTAT'] 0 6.575 1 6.421 2 7.185 3 6.998 4 7.147 Name: 5, dtype: float640 0 24.0 1 21.6 2 34.7 3 33.4 4 36.2 (379, 1) (127, 1) (379, 1) (127, 1) 求解系數為: [-35.59828349] 求解系數為: [[9.23195448]] r2: 0.3944946886803493 r2_score: -660.1580577546584 MAE: 4.733243417768924 MSE: 48.43066789457248 RMSE: 6.959214603284805

總結

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

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