摘要:合成特征和離群值學(xué)習(xí)目標(biāo)嘗試合成特征上一次我們只使用了單個(gè)特征,但這是不切實(shí)際的,往往我們需要多個(gè)特征,但此次并不是使用多個(gè)特征,而是創(chuàng)建一個(gè)合成特診和特征都會(huì)統(tǒng)計(jì)指定街區(qū)的相關(guān)總計(jì)數(shù)據(jù)。
合成特征和離群值
學(xué)習(xí)目標(biāo):
嘗試合成特征上一次我們只使用了單個(gè)特征,但這是不切實(shí)際的,往往我們需要多個(gè)特征,但此次并不是使用多個(gè)特征,而是創(chuàng)建一個(gè)合成特診
total_rooms 和 population 特征都會(huì)統(tǒng)計(jì)指定街區(qū)的相關(guān)總計(jì)數(shù)據(jù)。
但是,如果一個(gè)街區(qū)比另一個(gè)街區(qū)的人口更密集,會(huì)怎么樣?我們可以創(chuàng)建一個(gè)合成特征(即 total_rooms 與 population 的比例)來探索街區(qū)人口密度與房屋價(jià)值中位數(shù)之間的關(guān)系。
# 創(chuàng)建合成特征 california_housing_dataframe["rooms_per_person"] =california_housing_dataframe["total_rooms"]/california_housing_dataframe["population"] calibration_data = train_model( learning_rate=0.0005, steps=500, batch_size=1, input_feature="rooms_per_person" )
結(jié)果:
Training model...
RMSE (on training data):
period 00 : 237.29
period 01 : 237.04
period 02 : 236.78
period 03 : 236.53
period 04 : 236.28
period 05 : 236.03
period 06 : 235.78
period 07 : 235.53
period 08 : 235.27
period 09 : 235.02
Model training finished
效果很差,因?yàn)镽MSE變化很小,我們可以嘗試增大學(xué)習(xí)速率,*10 learning_rate=0.005
Training model...
RMSE (on training data):
period 00 : 235.03
period 01 : 232.52
period 02 : 230.03
period 03 : 227.56
period 04 : 225.13
period 05 : 222.70
period 06 : 220.38
period 07 : 217.95
period 08 : 215.54
period 09 : 213.17
Model training finished.
可以發(fā)現(xiàn)RMSE是在逐漸收斂的,學(xué)習(xí)速率沒有過大,繼續(xù)*10 learning_rate=0.05
Training model...
RMSE (on training data):
period 00 : 212.86
period 01 : 190.91
period 02 : 172.64
period 03 : 155.99
period 04 : 149.72
period 05 : 141.27
period 06 : 136.94
period 07 : 134.30
period 08 : 131.94
period 09 : 130.69
Model training finished.
從RMSE的下降速率來看,說明已經(jīng)接近最小值了,為其增大一點(diǎn)點(diǎn),+0.005 learning_rate=0.055
Training model...
RMSE (on training data):
period 00 : 210.61
period 01 : 185.76
period 02 : 166.58
period 03 : 150.86
period 04 : 142.97
period 05 : 136.05
period 06 : 133.06
period 07 : 132.46
period 08 : 131.34
period 09 : 130.55
Model training finished.
predictions | targets | |
---|---|---|
count | 17000.0 | 17000.0 |
mean | 170.9 | 207.3 |
std | 77.4 | 116.0 |
min | 41.1 | 15.0 |
25% | 140.6 | 119.4 |
50% | 168.3 | 180.4 |
75% | 191.9 | 265.0 |
max | 3693.8 | 500.0 |
Final RMSE (on training data): 130.55
可以發(fā)現(xiàn)結(jié)果變化很小,我們?cè)谶@里就可以停止了,因?yàn)樵俅螄L試下去,要浪費(fèi)太多的計(jì)算量和時(shí)間
識(shí)別離群值通過上圖的預(yù)測(cè)值與目標(biāo)值的散點(diǎn)圖效果,可以發(fā)現(xiàn),
如果是在理想情況下,這些值將位于一條完全相關(guān)的對(duì)角線上。
但是現(xiàn)在卻是存在許多異常的散點(diǎn),如果我們能夠查找到這些異常點(diǎn)的原因并將其篩除掉,那么效果一定會(huì)更好更貼近真實(shí)情況
# 尺寸15*6 plt.figure(figsize=(15, 6)) # 1行2列,先畫第一個(gè)格 plt.subplot(1, 2, 1) # x,y軸標(biāo)簽 plt.xlabel("predictioon") plt.ylabel("targets") # 繪制散點(diǎn)圖 plt.scatter(calibration_data["predictions"], calibration_data["targets"]) # 第二個(gè)繪制直方圖 plt.subplot(1, 2, 2) california_housing_dataframe["rooms_per_person"].hist()
結(jié)果:
從散點(diǎn)圖中可以看出,絕大部分的散點(diǎn)匯集在一條豎直的直線上(其實(shí)這也并不是一條直線,而是因?yàn)閤軸的分辨率太大了,一格500),還有一些是散亂分布的
為什么大部分點(diǎn)會(huì)垂直排列,這個(gè)原因我們先不講,這不是這次訓(xùn)練目的,我們的目的是要找出極少出的異常的點(diǎn)
再看直方圖,大部分是在0-5這條線上,少數(shù)的應(yīng)該就是異常值了,下面我們?yōu)V掉他們,并看下結(jié)果會(huì)怎樣
california_housing_dataframe["rooms_per_person"] = ( california_housing_dataframe["rooms_per_person"]).apply(lambda x: min(x, 5)) _ = california_housing_dataframe["rooms_per_person"].hist()
結(jié)果:
這次都在0-5之內(nèi)了
再次訓(xùn)練
calibration_data = train_model( learning_rate=0.055, steps=500, batch_size=5, input_feature="rooms_per_person")
結(jié)果:
Training model...
RMSE (on training data):
period 00 : 210.41
period 01 : 184.47
period 02 : 160.39
period 03 : 140.40
period 04 : 124.11
period 05 : 117.53
period 06 : 110.61
period 07 : 108.84
period 08 : 108.26
period 09 : 108.65
Model training finished.
predictions | targets | |
---|---|---|
count | 17000.0 | 17000.0 |
mean | 191.6 | 207.3 |
std | 50.1 | 116.0 |
min | 44.8 | 15.0 |
25% | 159.7 | 119.4 |
50% | 191.7 | 180.4 |
75% | 218.9 | 265.0 |
max | 425.3 | 500.0 |
Final RMSE (on training data): 108.65
這次的結(jié)果好過以前的每一次,體現(xiàn)在RMSE下降的速度特別快,說明少了很多干擾,其次便是RMSE這次是最小的,說明去除離群值后效果真的是好了很多
plt.scatter(calibration_data["predictions"], calibration_data["targets"])
結(jié)果:
現(xiàn)在可以看出散點(diǎn)分布其實(shí)是挺集中的。
以上,結(jié)束
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44633.html
摘要:得分與距離均值的標(biāo)準(zhǔn)偏差數(shù)相關(guān)。不過,在我們的模型中將表示為浮點(diǎn)特征將其看為一個(gè)浮點(diǎn)數(shù),以它的數(shù)值大小為特征沒有意義。清查截至目前,我們假定用于訓(xùn)練和測(cè)試的所有數(shù)據(jù)都是值得信賴的。良好的機(jī)器學(xué)習(xí)依賴于良好的數(shù)據(jù)。 特征工程 將原始數(shù)據(jù)映射到特征 我們?cè)谶M(jìn)行機(jī)器學(xué)習(xí)的時(shí)候,采用的數(shù)據(jù)樣本往往是矢量(特征矢量),而我們的原始數(shù)據(jù)并不是以矢量的形式呈現(xiàn)給我們的,這是便需要將數(shù)據(jù)映射到特征...
摘要:在本次課程中,著重講解的是傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)及各種算法?;貧w對(duì)連續(xù)型數(shù)據(jù)進(jìn)行預(yù)測(cè)趨勢(shì)預(yù)測(cè)等除了分類之外,數(shù)據(jù)挖掘技術(shù)和機(jī)器學(xué)習(xí)技術(shù)還有一個(gè)非常經(jīng)典的場(chǎng)景回歸。 摘要: 什么是數(shù)據(jù)挖掘?什么是機(jī)器學(xué)習(xí)?又如何進(jìn)行Python數(shù)據(jù)預(yù)處理?本文將帶領(lǐng)大家一同了解數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù),通過淘寶商品案例進(jìn)行數(shù)據(jù)預(yù)處理實(shí)戰(zhàn),通過鳶尾花案例介紹各種分類算法。 課程主講簡(jiǎn)介:韋瑋,企業(yè)家,資深I(lǐng)T領(lǐng)...
摘要:在本次課程中,著重講解的是傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)及各種算法。回歸對(duì)連續(xù)型數(shù)據(jù)進(jìn)行預(yù)測(cè)趨勢(shì)預(yù)測(cè)等除了分類之外,數(shù)據(jù)挖掘技術(shù)和機(jī)器學(xué)習(xí)技術(shù)還有一個(gè)非常經(jīng)典的場(chǎng)景回歸。 摘要: 什么是數(shù)據(jù)挖掘?什么是機(jī)器學(xué)習(xí)?又如何進(jìn)行Python數(shù)據(jù)預(yù)處理?本文將帶領(lǐng)大家一同了解數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù),通過淘寶商品案例進(jìn)行數(shù)據(jù)預(yù)處理實(shí)戰(zhàn),通過鳶尾花案例介紹各種分類算法。 課程主講簡(jiǎn)介:韋瑋,企業(yè)家,資深I(lǐng)T領(lǐng)...
閱讀 1131·2021-11-19 09:40
閱讀 976·2021-11-12 10:36
閱讀 1274·2021-09-22 16:04
閱讀 3118·2021-09-09 11:39
閱讀 1277·2019-08-30 10:51
閱讀 1892·2019-08-30 10:48
閱讀 1234·2019-08-29 16:30
閱讀 479·2019-08-29 12:37