python波士顿房价是什么数据,Python数据分析 | 波士顿房价回归分析
分析目標:
將波士頓房價的數(shù)據(jù)集進行描述性數(shù)據(jù)分析、預測性數(shù)據(jù)分析(主要用了回歸分析),可用于預測房價。
數(shù)據(jù)集介紹:
卡內基梅隆大學收集,StatLib庫,1978年,涵蓋了麻省波士頓的506個不同郊區(qū)的房屋數(shù)據(jù)。
一共含有506條數(shù)據(jù)。每條數(shù)據(jù)14個字段,包含13個屬性,和一個房價的平均值。
騰訊文檔 ? docs.qq.com
一、數(shù)據(jù)預處理
①導入常用的數(shù)據(jù)分析庫
#導入Python常用數(shù)據(jù)分析的庫
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set() #設置畫圖空間為 Seaborn 默認風格
names=['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT','PRICE']
boston=pd.read_csv("/Users/glenji/Desktop/housing.csv",names=names,delim_whitespace=True)
boston.head(10)
②指標解釋:
#指標解釋
#CRIM犯罪率
#ZN住宅用地所占比例
#INDUS城鎮(zhèn)中非住宅用地所占比例
#CHAS是否穿過查爾斯河
#NOX氮氧化污染物
#RM每棟住宅的房間數(shù)
#GE1940年以前建成的自住單位的比例
#DIS距離5個波士頓的就業(yè)中心的加權距離
#RAD距離高速公路的便利指數(shù)
#TAX每一萬美元的不動產稅率
#PRTATIO城鎮(zhèn)中的教師學生比例
#B城鎮(zhèn)中的黑人比例
#LSTAT低收入群比例
#PRICE價格
查看數(shù)據(jù)集大小:
#查看數(shù)據(jù)集大小
boston.shape
查看各字段基礎信息:
boston.info()
查看缺失值:
#查看缺失值
boston.isnull().sum()
二、描述性數(shù)據(jù)分析
①查看描述性數(shù)據(jù)統(tǒng)計:可以看到各個字段的均值、中位數(shù)、標準差等。
#描述性數(shù)據(jù)統(tǒng)計
boston.describe()
②查看各字段的相關性:可以看到房子價格跟住宅的房間數(shù)成比較強的正相關,而跟低收入人數(shù)比例有比較強的負相關。
#查看相關性
corrboston = boston.corr()
corrboston
plt.figure(figsize=(10,10)) #設置畫布
sns.heatmap(corrboston,annot=True,cmap='RdGy')
plt.show()
③查看是否穿過查爾斯河對房價的影響:可以看到被河流穿過的豪宅僅占比6.92%,而被查爾斯河穿過的豪宅,比沒有被穿過的豪宅平均貴了28.7%。
#查看是否穿過查爾斯河的兩類占比
#可以看到被河流穿過的豪宅僅占比6.92%
fig,ax = plt.subplots(1,2,figsize=(10,5))
boston['CHAS'].value_counts().plot.pie(ax=ax[0],shadow=False,autopct='%1.2f%%')
ax[0].set_ylabel('') #設置y軸標簽
ax[0].set_xlabel('CHAS') #設置x軸標簽
sns.countplot('CHAS',data=boston,ax=ax[1])
ax[1].set_ylabel('')
ax[1].set_xlabel('CHAS')
plt.show()
#再來看看兩種不同類型的房子的價值如何
#可以看到被查爾斯河穿過的豪宅,比沒有被穿過的豪宅平均貴了28.7%
bostonCHAS = boston[['CHAS','PRICE']] #先將CHAS和PRICE兩列數(shù)據(jù)取出
bostonCHAS1=bostonCHAS.pivot_table(values='PRICE', #計算的值
index='CHAS', #透視的行,分組的依據(jù)
aggfunc='mean') #聚合函數(shù)
# 對透視表進行降序排列
bostonCHAS1 = bostonCHAS1.sort_values(by='PRICE', # 排序依據(jù)
ascending=False # 是否升序排列
)
bostonCHAS1
④看看各個字段與價格的散點圖:以初步了解價格與相應字段的關系??梢钥吹讲皇撬械淖侄闻c價格都有較強的相關關系,但本例中不涉及多元線性回歸的向后刪除,僅做最簡單的多元性性回歸的分析處理。
x_data = boston[['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT']] # 導入所有特征變量
y_data = boston[['PRICE']] # 導入目標值(房價)
plt.figure(figsize=(18,10))
for i in range(13):
plt.subplot(4,4,i+1)
plt.scatter(x_data.values[:,i],y_data,s = 5) #.values將DataFrame對象X_df轉成ndarray數(shù)組
plt.xlabel(names[i])
plt.ylabel('Price')
plt.title(str(i+1)+'. '+names[i]+' - Price')
plt.tight_layout()
plt.show()
三、預測性數(shù)據(jù)分析
①選取線性回歸字段:
from sklearn import linear_model
#定義線性回歸的x和y變量
x=pd.DataFrame(boston[['CRIM','ZN','INDUS','CHAS','NOX','RM','GE','DIS','RAD','TAX','PRTATIO','B','LSTAT']])
y=boston['PRICE']
x
②建立線性回歸模型,并調用:可以看到各個字段的回歸系數(shù),可以寫出一個回歸方程:y=ax1+bx2+……,理論上你知道一套新房子的各個字段,帶入公式即可預測出價格。
#建立線性回歸模型,并將變量帶入模型進行訓練。
clf = linear_model.LinearRegression()
clf.fit(x, y)
#查看回歸系數(shù)。本例為一元回歸,所以只有一個系數(shù)。
print('回歸系數(shù):', clf.coef_)
③計算回歸系數(shù):計算出的回歸系數(shù)為0.74,回歸擬合效果較好。
from sklearn.metrics import r2_score
score = r2_score(y, y_pred)
score
④可以進行簡單的預測:
y_pred =clf.predict(x)
print(y_pred)
以上,謝謝,喜歡的話可以關注一下。
參考資料:
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的python波士顿房价是什么数据,Python数据分析 | 波士顿房价回归分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成为优秀的Java程序员要具备哪些技能?
- 下一篇: Java小白零基础学习如何突破自己的方法