低緯度房價預測入門測試

本次練習需要圍繞以下目的進行:

  • 理解問題?: 觀察每個變量特征的意義以及對于問題的重要程度
  • 研究主要特征?: 也就是最終的目的變量----房價
  • 研究其他變量?: 研究其他多變量對“房價”的影響的他們之間的關系
  • 基礎的數據清理?: 對一些缺失數據、異常點和分類數據進行處理
  • 測試假設

房價預測02

?

?

?

Comments

Id MSSubClass MSZoning LotFrontage LotArea Street Alley LotShape LandContour Utilities ... PoolArea PoolQC Fence MiscFeature MiscVal MoSold YrSold SaleType SaleCondition SalePrice
0 1 60 RL 65.0 8450 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 2 2008 WD Normal 208500
1 2 20 RL 80.0 9600 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2007 WD Normal 181500
2 3 60 RL 68.0 11250 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 9 2008 WD Normal 223500
3 4 70 RL 60.0 9550 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 2 2006 WD Abnorml 140000
4 5 60 RL 84.0 14260 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 12 2008 WD Normal 250000
5 6 50 RL 85.0 14115 Pave NaN IR1 Lvl AllPub ... 0 NaN MnPrv Shed 700 10 2009 WD Normal 143000
6 7 20 RL 75.0 10084 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 8 2007 WD Normal 307000
7 8 60 RL NaN 10382 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN Shed 350 11 2009 WD Normal 200000
8 9 50 RM 51.0 6120 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 4 2008 WD Abnorml 129900
9 10 190 RL 50.0 7420 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 1 2008 WD Normal 118000
10 11 20 RL 70.0 11200 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 2 2008 WD Normal 129500
11 12 60 RL 85.0 11924 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 7 2006 New Partial 345000
12 13 20 RL NaN 12968 Pave NaN IR2 Lvl AllPub ... 0 NaN NaN NaN 0 9 2008 WD Normal 144000
13 14 20 RL 91.0 10652 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 8 2007 New Partial 279500
14 15 20 RL NaN 10920 Pave NaN IR1 Lvl AllPub ... 0 NaN GdWo NaN 0 5 2008 WD Normal 157000
15 16 45 RM 51.0 6120 Pave NaN Reg Lvl AllPub ... 0 NaN GdPrv NaN 0 7 2007 WD Normal 132000
16 17 20 RL NaN 11241 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN Shed 700 3 2010 WD Normal 149000
17 18 90 RL 72.0 10791 Pave NaN Reg Lvl AllPub ... 0 NaN NaN Shed 500 10 2006 WD Normal 90000
18 19 20 RL 66.0 13695 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 6 2008 WD Normal 159000
19 20 20 RL 70.0 7560 Pave NaN Reg Lvl AllPub ... 0 NaN MnPrv NaN 0 5 2009 COD Abnorml 139000
20 21 60 RL 101.0 14215 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 11 2006 New Partial 325300
21 22 45 RM 57.0 7449 Pave Grvl Reg Bnk AllPub ... 0 NaN GdPrv NaN 0 6 2007 WD Normal 139400
22 23 20 RL 75.0 9742 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 9 2008 WD Normal 230000
23 24 120 RM 44.0 4224 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 6 2007 WD Normal 129900
24 25 20 RL NaN 8246 Pave NaN IR1 Lvl AllPub ... 0 NaN MnPrv NaN 0 5 2010 WD Normal 154000
25 26 20 RL 110.0 14230 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 7 2009 WD Normal 256300
26 27 20 RL 60.0 7200 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2010 WD Normal 134800
27 28 20 RL 98.0 11478 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2010 WD Normal 306000
28 29 20 RL 47.0 16321 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 12 2006 WD Normal 207500
29 30 30 RM 60.0 6324 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 5 2008 WD Normal 68500
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1430 1431 60 RL 60.0 21930 Pave NaN IR3 Lvl AllPub ... 0 NaN NaN NaN 0 7 2006 WD Normal 192140
1431 1432 120 RL NaN 4928 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 10 2009 WD Normal 143750
1432 1433 30 RL 60.0 10800 Pave Grvl Reg Lvl AllPub ... 0 NaN NaN NaN 0 8 2007 WD Normal 64500
1433 1434 60 RL 93.0 10261 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 5 2008 WD Normal 186500
1434 1435 20 RL 80.0 17400 Pave NaN Reg Low AllPub ... 0 NaN NaN NaN 0 5 2006 WD Normal 160000
1435 1436 20 RL 80.0 8400 Pave NaN Reg Lvl AllPub ... 0 NaN GdPrv NaN 0 7 2008 COD Abnorml 174000
1436 1437 20 RL 60.0 9000 Pave NaN Reg Lvl AllPub ... 0 NaN GdWo NaN 0 5 2007 WD Normal 120500
1437 1438 20 RL 96.0 12444 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 11 2008 New Partial 394617
1438 1439 20 RM 90.0 7407 Pave NaN Reg Lvl AllPub ... 0 NaN MnPrv NaN 0 4 2010 WD Normal 149700
1439 1440 60 RL 80.0 11584 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 11 2007 WD Normal 197000
1440 1441 70 RL 79.0 11526 Pave NaN IR1 Bnk AllPub ... 0 NaN NaN NaN 0 9 2008 WD Normal 191000
1441 1442 120 RM NaN 4426 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2008 WD Normal 149300
1442 1443 60 FV 85.0 11003 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 4 2009 WD Normal 310000
1443 1444 30 RL NaN 8854 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2009 WD Normal 121000
1444 1445 20 RL 63.0 8500 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 11 2007 WD Normal 179600
1445 1446 85 RL 70.0 8400 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2007 WD Normal 129000
1446 1447 20 RL NaN 26142 Pave NaN IR1 Lvl AllPub ... 0 NaN NaN NaN 0 4 2010 WD Normal 157900
1447 1448 60 RL 80.0 10000 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 12 2007 WD Normal 240000
1448 1449 50 RL 70.0 11767 Pave NaN Reg Lvl AllPub ... 0 NaN GdWo NaN 0 5 2007 WD Normal 112000
1449 1450 180 RM 21.0 1533 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 8 2006 WD Abnorml 92000
1450 1451 90 RL 60.0 9000 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 9 2009 WD Normal 136000
1451 1452 20 RL 78.0 9262 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2009 New Partial 287090
1452 1453 180 RM 35.0 3675 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 5 2006 WD Normal 145000
1453 1454 20 RL 90.0 17217 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 7 2006 WD Abnorml 84500
1454 1455 20 FV 62.0 7500 Pave Pave Reg Lvl AllPub ... 0 NaN NaN NaN 0 10 2009 WD Normal 185000
1455 1456 60 RL 62.0 7917 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 8 2007 WD Normal 175000
1456 1457 20 RL 85.0 13175 Pave NaN Reg Lvl AllPub ... 0 NaN MnPrv NaN 0 2 2010 WD Normal 210000
1457 1458 70 RL 66.0 9042 Pave NaN Reg Lvl AllPub ... 0 NaN GdPrv Shed 2500 5 2010 WD Normal 266500
1458 1459 20 RL 68.0 9717 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 4 2010 WD Normal 142125
1459 1460 20 RL 75.0 9937 Pave NaN Reg Lvl AllPub ... 0 NaN NaN NaN 0 6 2008 WD Normal 147500

1460 rows × 81 columns

二、觀察各項主要特征與房屋售價的關系

為了能更好的判斷各項特征對“房價”的關系,我們需要花上一點時間來對數據進行研究和處理。雖然比較耗時和費事,但是這會讓我們后面構建模型的時候事半功倍。

1. 分析“SalePrice”

色狠狠亚洲爱综合网站data_train['SalePrice'].describe()

房價預測saleprice

通過上面的結果可以知道“SalePrice”沒有無效或者其他非數值的數據,下面通過圖示化來進一步展示“SalePrice”

色狠狠亚洲爱综合网站sns.distplot(data_train['SalePrice'])

<matplotlib.axes._subplots.AxesSubplot at 0x7f23ac874a58>

kde密度曲線

可以看到與使用matplotlib作的直方圖最大的區別在于有一條密度曲線(KDE),可以通過設置參數去掉這條默認的曲線。 另外由上圖可以知道房價呈現正態分布。下面還可以看到兩個統計學中的概念:?峰度(Kurtosis)和?偏度(Skewness)

峰度:峰度(Kurtosis)是描述某變量所有取值分布形態陡緩程度的統計量。

它是和正態分布相比較的。

  • Kurtosis=0 與正態分布的陡緩程度相同。

  • Kurtosis>0 比正態分布的高峰更加陡峭——尖頂峰

  • Kurtosis<0 比正態分布的高峰來得平臺——平頂峰計算公式:β = M_4 /σ^4?偏度:

偏度:偏度(Skewness)是描述某變量取值分布對稱性的統計量。

  • Skewness=0 分布形態與正態分布偏度相同
  • Skewness>0 正偏差數值較大,為正偏或右偏。長尾巴拖在右邊。
  • Skewness<0 負偏差數值較大,為負偏或左偏。長尾巴拖在左邊。 計算公式: S= (X^ - M_0)/δ Skewness 越大,分布形態偏移程度越大。

?#skewness and kurtosis

print("Skewness: %f" % data_train['SalePrice'].skew())

色狠狠亚洲爱综合网站print("Kurtosis: %f" % data_train['SalePrice'].kurt())

計算結果 長尾

將上面的計算結果、理論和圖形相對比可以看到,長尾巴確實拖在右邊,而且高峰陡峭。

?

2. 分析特征數據

2.1 數據再分類

為了讓我們對數據的分析更具科學性,我們可以新建一個excel文件,具體需要記錄的數據如下:

  • Variable:變量名
  • Data Type:各變量的數據類型,分為“數值型--0”和“類別型--1”
  • Segment:變量的類型。分為:“building--0”、“space--1”、“location--2”。具體解釋如下:
    • building:比如房屋材料、造型等與房屋物理特性相關的特征(e.g. 'OverallQual')
    • space:即與房屋空間有關的特征,如面積(e.g. 'TotalBsmtSF')
    • location:如地段、道路情況等(e.g. 'Neighborhood')
  • Expectation:表示我們認為該變量對于“SalePrice”的影響程度,劃分為“High---3”,“Medium---2”,“Low---1”
  • Conclusion:與“Expectation”類似,這個表示我們在觀察完數據后得出的結論,其實也可和“Expectation”相同。
  • Comments:其他關于該變量的一些看法

?

2.2 提取主要特征

接下來要做的就是按照上面要求完成電子表單,Go!!!!

。 。 。

色狠狠亚洲爱综合网站我已經完成了任務,下面將會對整理后的數據進一步分析來選出主要影響售價的特征。

  • Utilities:第一個映入我眼簾的是Utilities,因為公共設施越齊全肯定越貴嘛,但是我又觀察了具體的訓練數據集,發現每一個房屋都是“AllPub”,即都具備基礎的公共設施,所以這一項不能入選。
  • LotArea:英文理解能力有限,并不知道這什么意思,姑且認為是“地皮面積”,很好理解,面積越大肯定越貴嘛。。。
  • Neighborhood:這應表示房屋所處市區的位置,這個必選啊,合不合適在后面再具體分析。
  • OverallQual:對房子的整體材料和裝修進行評估
  • YearBuilt:建造年份
  • TotalBsmtSF&GrLivArea:訓練數據中有很多特征都涉及到了面積,所以沒必要每個都考慮進去,為了簡化,選擇了TotalBsmtSF(地下室面積)&GrLivArea(生活面積)
  • Heating:供暖方式應該很重要,但是數據顯示基本上都是GasA類型,所以不予考慮,
  • CentralAir:中央空調這個可以考慮一下,因為有的有,有的沒有。
  • MiscVal: 在其他類別中未涉及的其他功能的價值,一般都是“shed(棚子)”,價格在400-1500美元之間,可以考慮一下
  • GarageCars&GarageArea:車庫可容納的車輛數以及其面積,這個可以算成單位車輛擁有的面積來計算

總結起來入選的特征如下:

色狠狠亚洲爱综合网站Variable? ? ? ? ? ? ? ? ? ? ? ? ? Segment? ? ? ? ? ? ? ? ? ? ? Data Type? ? ? ? ? ? ? ? ? ? ?Comments

LotArea? ? ? ? ? ? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?地皮面積

GrLivArea? ? ? ? ? ? ? ? ??色狠狠亚洲爱综合网站1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 生活面積

TotalBsmtSF? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?地下室總面積

MiscVal? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?其他資產

GarageArea/GarageCars? ? ?1? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?車庫

YearBuilt? ? ? ? ? ? ? ? ? ? ? ? ? ? ??0? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?建造年份

CentralAir? ? ? ? ? ? ? ? ? ? ? ? ? ??色狠狠亚洲爱综合网站0? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 中央空調

OverallQual? ? ? ? ? ? ? ? ? ? ? ? ??0? ? ? ? ? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?總體評價

Neighborhood? ? ? ? ? ? ? ? ? ? ??2? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?地段

如上表所示,入選5個數值型特征,4個分類型特征

3.驗證主要特征是否滿足要求

3.1 類別型特征

1. CentralAir 中央空調

?

# CentralAir

色狠狠亚洲爱综合网站var = 'CentralAir'

色狠狠亚洲爱综合网站data = pd.concat([data_train['SalePrice'], data_train[var]], axis=1)

fig = sns.boxplot(x=var, y="SalePrice", data=data)

fig.axis(ymin=0, ymax=800000);

中央空調房價更高

可以很明顯的看到有中央空調的房價明顯更高。

?

2. OverallQual 總體評價

# OverallQual

var = 'OverallQual'

色狠狠亚洲爱综合网站data = pd.concat([data_train['SalePrice'],

色狠狠亚洲爱综合网站data_train[var]], axis=1)

fig = sns.boxplot(x=var, y="SalePrice", data=data)

fig.axis(ymin=0, ymax=800000);

overrallqual總體評價

3. YearBuilt 建造年份

# YearBuilt boxplot

色狠狠亚洲爱综合网站var = 'YearBuilt'

色狠狠亚洲爱综合网站data = pd.concat([data_train['SalePrice'], data_train[var]], axis=1)

色狠狠亚洲爱综合网站f, ax = plt.subplots(figsize=(26, 12))

fig = sns.boxplot(x=var, y="SalePrice", data=data)

fig.axis(ymin=0, ymax=800000);

建造年份和房價關系

建造超過100年的房價?

# YearBuilt scatter

色狠狠亚洲爱综合网站var = 'YearBuilt'

data = pd.concat([data_train['SalePrice'], data_train[var]], axis=1)

色狠狠亚洲爱综合网站data.plot.scatter(x=var, y="SalePrice", ylim=(0, 800000))

房價預測

年份和房價的關系

色狠狠亚洲爱综合网站最開始我是用了箱線圖繪制了房價與建造年份的關系,但是并不十分明顯,所以又用點圖來顯示,可以很明顯的看到有線性增長的趨勢。

?

?

4. Neighborhood 地段

# Neighborhood 地段相關箱線圖

色狠狠亚洲爱综合网站var = 'Neighborhood'

色狠狠亚洲爱综合网站data = pd.concat([data_train['SalePrice'], data_train[var]], axis=1)

f, ax = plt.subplots(figsize=(26, 12))

色狠狠亚洲爱综合网站fig = sns.boxplot(x=var, y="SalePrice", data=data)

色狠狠亚洲爱综合网站fig.axis(ymin=0, ymax=800000);

Image removed.

location = []

for x in data['Neighborhood']:

? ? ? ? ? ? ? ? ?if x not in location:

? ? ? ? ? ? ? ? ? ? ? ? ?location.append(x)

data.sort_values(['Neighborhood','SalePrice'])

nb_data = data

3.2 數值型特征

1.LotArea 地表面積

...

總結起來,最后

Variable? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Segment? ? ? ? ? ? ?Data Type? ? ?Comments

色狠狠亚洲爱综合网站GrLivArea? ? ? ? ? ? ? ? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ?生活面積

TotalBsmtSF? ? ? ? ? ? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? 地下室總面積

GarageArea/GarageCars? ?1? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? 車庫

色狠狠亚洲爱综合网站YearBuilt? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ?建造年份

CentralAir? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? ? ? ? ? ? ? ?1? ? ? ? ? ? ? ? ? ? ?中央空調

OverallQual? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? ?總體評價

色狠狠亚洲爱综合网站Neighborhood? ? ? ? ? ? ? ? ? ? ? ? ?2? ? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? ? ? ? ? ? 地段

繪制關系點圖

sns.set()

cols = ['SalePrice','OverallQual','GrLivArea', 'GarageCars','TotalBsmtSF', 'FullBath', 'TotRmsAbvGrd', 'YearBuilt'] sns.pairplot(data_train[cols], size = 2.5)

plt.show()

繪制關系圖

四、開始模擬數據

xtrain ytrain , svm, randomForestRegressor,bayesianRidge

隨機森林回歸算法

var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?44d5929b98ed1fd093ffc3d47ec712b9"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); document.writeln("");