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

歡迎訪問 生活随笔!

生活随笔

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

python

python回归分析预测模型_Python与线性回归模型预测房价

發布時間:2025/4/5 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python回归分析预测模型_Python与线性回归模型预测房价 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄提出問題

理解數據

數據清洗

構建模型

模型評估

總結

1. 提出問題

房價和什么因素相關?進而得知如何挑選房子?

2. 理解數據

2.1 導入數據

從Kaggle 中下載

2.2 導入數據

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns

導入訓練數據與測試數據批量進行數據清洗。

#訓練數據集

df_train= pd.read_csv('./train.csv')

#測試數據集

df_test= pd.read_csv('./test.csv')

print("訓練集數據:",df_train.shape,"測試訓練集:", df_test.shape)

訓練集數據: (1460, 81) 測試訓練集: (1459, 80)

#合并數據集,以便同步數據清洗

full = df_train.append(df_test,ignore_index=True)

print("合并后的數據集:",full.shape)

合并后的數據集: (2919, 81)

2.3 查看數據集信息

full.columns

full.head()

full.info()由于數據項太多,這里只展示節選數據

3. 數據清洗

3.1 處理缺失值

數據有明顯缺失值,其中數據項Alley, Fence, MiscFeature, PoolQC 等缺失率高達90%,直接刪除它們。

full.drop(['Alley','Fence','MiscFeature','PoolQC'],axis=1,inplace=True)

3.2 處理分類特征 —— One-hot encoding

為了提高數據分析的可信度,此處把所有的分類數據降維,批量進行獨熱編碼。

object_type=[]

for col in full.columns:

if full[col].dtype =="object":

object_type.append(col)

full_dummied_object = full

for ob in object_type:

objectDf=pd.DataFrame()

objectDf=pd.get_dummies(full_dummied_object[ob],prefix=ob)

full_dummied_object=pd.concat([full_dummied_object,objectDf],axis=1)

full_dummied_object.drop(ob,axis=1,inplace=True)

full_dummied_object.head()

3.3 數據相關性

數據太多,先找出和“標簽”關聯性最大的10個“特征”再進行下一步分析。

Correlation Martix (heatmap style)

通過熱力圖形象看出數據項之間的相關關系。

cor_mart=full_dummied_object.corr()

k=10

cols=cor_mart.nlargest(k,'SalePrice')['SalePrice'].index

cm=np.corrcoef(full_dummied_object[cols].values.T)

sns.set(font_scale=1.25)

hm=sns.heatmap(cm,cbar=True, annot=True, square=True,fmt='.2f',annot_kws={'size':10},yticklabels=cols.values, xticklabels=cols.values)

plt.show()

顯示前10個相關性最強的特征。

cor_mart['SalePrice'].sort_values(ascending =False)[0:11]

# 特征選擇

full_X = full_dummied_object[['OverallQual','GrLivArea','GarageCars','GarageArea',

'TotalBsmtSF','1stFlrSF','FullBath','BsmtQual_Ex','TotRmsAbvGrd','YearBuilt']]

full_X.head()

4.構建模型

4.1 建立訓練數據集和測試數據集

#原始數據集有1460行

sourceRow=1460

#原始數據集:特征

source_X = full_X.loc[0:sourceRow-1,:]

#原始數據集:標簽

source_y = full_dummied_object.loc[0:sourceRow-1,'SalePrice']

#預測數據集:特征

pred_X = full_X.loc[sourceRow:,:]

#原始數據集有多少行

print('原始數據集有多少行:',source_X.shape[0])

#預測數據集大小

print('原始數據集有多少行:',pred_X.shape[0])

原始數據集有多少行: 1460

原始數據集有多少行: 1459

from sklearn.model_selection import train_test_split

#建立模型用的訓練數據集和測試數據集

train_X, test_X, train_y, test_y = train_test_split(source_X, source_y, train_size=.8)

4.2 選擇機器學習方法 --線性回歸

from sklearn.linear_model import LinearRegression

model = LinearRegression()

model.fit(train_X , train_y)

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

model.score(test_X, test_y)

0.8269044883096861

5. 總結

經數據清洗后,建立的線性回歸模型準確率為82.7%。

總結

以上是生活随笔為你收集整理的python回归分析预测模型_Python与线性回归模型预测房价的全部內容,希望文章能夠幫你解決所遇到的問題。

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