- 機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn、Keras和TensorFlow(原書(shū)第3版)
- (法)奧雷利安·杰龍
- 2166字
- 2024-09-11 17:33:03
2.4 探索和可視化數(shù)據(jù)以獲得見(jiàn)解
到目前為止,你只是快速瀏覽了數(shù)據(jù)來(lái)大致了解你正在處理的數(shù)據(jù)類型。現(xiàn)在的目標(biāo)是更深入了解。
首先,確保你已經(jīng)把測(cè)試集放在一邊,你只是在探索訓(xùn)練集。其次,如果訓(xùn)練集非常大,你可能希望對(duì)探索集進(jìn)行采樣,使探索階段的操作變得簡(jiǎn)單快捷。在這種情況下,訓(xùn)練集很小,所以你可以直接在完整數(shù)據(jù)集上工作。由于你要實(shí)驗(yàn)完整訓(xùn)練集的各種變換,因此你應(yīng)該制作一份原始副本,以便之后可以恢復(fù):

2.4.1 可視化地理數(shù)據(jù)
因?yàn)閿?shù)據(jù)集包含地理信息(緯度和經(jīng)度),所以創(chuàng)建所有地區(qū)的散點(diǎn)圖來(lái)可視化數(shù)據(jù)是個(gè)好主意(見(jiàn)圖2-11):


圖2-11:數(shù)據(jù)的地理散點(diǎn)圖
這看起來(lái)很像加州,但除此之外很難看到任何特定的模式。將alpha選項(xiàng)設(shè)置為0.2,可以更容易地可視化數(shù)據(jù)點(diǎn)密度高的地方(見(jiàn)圖2-12):

現(xiàn)在好多了:你可以清楚地看到高密度區(qū)域,即灣區(qū)以及洛杉磯和圣迭戈周圍,以及中央山谷中一長(zhǎng)串相當(dāng)高密度的區(qū)域(特別是薩克拉門托和弗雷斯諾周圍)。
我們的大腦非常擅長(zhǎng)發(fā)現(xiàn)圖片中的模式,但你可能需要嘗試使用可視化參數(shù)才能使模式脫穎而出。

圖2-12:突出顯示高密度區(qū)域的更好的可視化
接下來(lái)看看房?jī)r(jià)(見(jiàn)圖2-13)。每個(gè)圓圈的半徑代表該地區(qū)的人口數(shù)量(選項(xiàng)s),顏色代表價(jià)格(選項(xiàng)c)。在這里,你使用名為jet的預(yù)定義顏色圖(選項(xiàng)cmap),其范圍從藍(lán)色(低)到紅色(高)[8]:

圖2-13告訴你,房?jī)r(jià)與地理位置(例如靠近海洋)和人口密度密切相關(guān),你可能已經(jīng)知道了。聚類算法應(yīng)該有助于檢測(cè)主集群和添加新特征來(lái)衡量與集群中心的接近程度。海洋鄰近度也可能是有用的屬性,不過(guò)北加州沿海地區(qū)的房?jī)r(jià)不是太高,所以這個(gè)簡(jiǎn)單的規(guī)則也不是萬(wàn)能的。

圖2-13:加州房?jī)r(jià):紅色為昂貴,藍(lán)色為便宜,圓圈越大代表地區(qū)人口越多
2.4.2 尋找相關(guān)性
由于數(shù)據(jù)集不是太大,你可以使用corr()方法輕松計(jì)算出每對(duì)屬性之間的標(biāo)準(zhǔn)相關(guān)系數(shù)(也稱為皮爾遜r):

現(xiàn)在你可以查看每個(gè)屬性與房?jī)r(jià)中位數(shù)的相關(guān)性:

相關(guān)系數(shù)取值范圍為-1到1。它越接近1,表示存在越強(qiáng)的正相關(guān)。例如,當(dāng)收入中位數(shù)上升時(shí),房?jī)r(jià)中位數(shù)往往會(huì)上升。當(dāng)系數(shù)接近-1時(shí),表示存在很強(qiáng)的負(fù)相關(guān)。你可以看到緯度和房?jī)r(jià)中位數(shù)之間存在弱的負(fù)相關(guān)(即當(dāng)你向北走時(shí),價(jià)格略有下降的趨勢(shì))。最后,接近于0的系數(shù)意味著不存在線性相關(guān)。
查看屬性之間相關(guān)性的另一種方法是使用Pandas的scatter_matrix()函數(shù),該函數(shù)將每個(gè)數(shù)值屬性與其他每個(gè)數(shù)值屬性進(jìn)行對(duì)比。由于現(xiàn)在有11個(gè)數(shù)值屬性,你將得到112=121個(gè)圖表,這些圖表無(wú)法放在一頁(yè)紙上,因此你要關(guān)注一些看起來(lái)與房?jī)r(jià)中位數(shù)最相關(guān)的屬性(見(jiàn)圖2-14):

圖2-14:這個(gè)散布矩陣?yán)L制了每個(gè)數(shù)值屬性與其他每個(gè)數(shù)值屬性的對(duì)比圖,加上主對(duì)角線上每個(gè)數(shù)值屬性的直方圖(左上到右下)

如果Pandas把每個(gè)變量與它自身畫(huà)一個(gè)圖,則主對(duì)角線將全都是直線,這樣毫無(wú)意義。因此取而代之的是,Pandas顯示每個(gè)屬性的直方圖(有其他選項(xiàng)可用,有關(guān)更多詳細(xì)信息請(qǐng)參閱Pandas文檔)。
查看相關(guān)散點(diǎn)圖,預(yù)測(cè)房?jī)r(jià)中位數(shù)最有希望的屬性似乎是收入中位數(shù),因此你可以放大散點(diǎn)圖(見(jiàn)圖2-15):


圖2-15:收入中位數(shù)與房?jī)r(jià)中位數(shù)
這個(gè)圖揭示了一些事情。首先,相關(guān)性確實(shí)很強(qiáng),你可以清楚地看到上升趨勢(shì),而且點(diǎn)不是太分散。其次,你之前注意到的價(jià)格上限清晰可見(jiàn),為500 000美元的水平線。但該圖還揭示了其他不太明顯的直線:450 000美元附近有一條水平線,350 000美元附近也有一條,280 000美元附近似乎隱約也有一條,再往下可能還有幾條。你可能想嘗試刪除相應(yīng)的地區(qū),以防止你的算法學(xué)習(xí)重現(xiàn)這些數(shù)據(jù)。
相關(guān)系數(shù)僅衡量線性相關(guān)性(“隨著x上升,y通常上升/下降”)。它可能會(huì)完全錯(cuò)過(guò)非線性關(guān)系(例如,“當(dāng)x接近0時(shí),y通常會(huì)上升”)。
圖2-16展示了各種數(shù)據(jù)集及其相關(guān)系數(shù)。請(qǐng)注意,盡管事實(shí)上它們的軸顯然不是獨(dú)立的,但底行的所有圖的相關(guān)系數(shù)都為0:這些是非線性關(guān)系的樣例。此外,第二行顯示相關(guān)系數(shù)為1或-1的樣例,請(qǐng)注意,這與斜率無(wú)關(guān)。例如,以英寸為單位的身高與以英尺或納米為單位的身高的相關(guān)系數(shù)為1。

圖2-16:各種數(shù)據(jù)集的標(biāo)準(zhǔn)相關(guān)系數(shù)(來(lái)源:維基百科,公共領(lǐng)域圖像)
2.4.3 實(shí)驗(yàn)不同屬性組合
通過(guò)前面幾節(jié)的介紹,希望你了解了探索數(shù)據(jù)和獲得見(jiàn)解的幾種方法。在將數(shù)據(jù)提供給機(jī)器學(xué)習(xí)算法之前,你確定了一些你可能想要清理的數(shù)據(jù),并且你發(fā)現(xiàn)了屬性之間有趣的相關(guān)性,尤其是與目標(biāo)屬性之間的相關(guān)性。你還注意到某些屬性呈右偏分布,因此你可能希望對(duì)它們進(jìn)行變換(例如,通過(guò)計(jì)算它們的對(duì)數(shù)或平方根)。當(dāng)然,你的工作時(shí)數(shù)會(huì)因每個(gè)項(xiàng)目而有很大差異,但總體思路是相似的。
在為機(jī)器學(xué)習(xí)算法準(zhǔn)備數(shù)據(jù)之前,你可能想要做的最后一件事是嘗試各種屬性組合。例如,如果你不知道一個(gè)地區(qū)有多少戶人家,則該地區(qū)的房間總數(shù)就沒(méi)有多大用處。你真正想要的是每個(gè)家庭的房間數(shù)。同樣,臥室總數(shù)本身也不是很有用:你可能想將其與房間數(shù)量進(jìn)行比較。每戶人口似乎也是一個(gè)值得關(guān)注的有趣屬性組合。你可以按如下方式創(chuàng)建這些新屬性:

然后再次查看相關(guān)矩陣:

嘿,還不錯(cuò)!與房間或臥室總數(shù)相比,新的bedrooms_ratio屬性與房?jī)r(jià)中位數(shù)的相關(guān)性更高。顯然,臥室/房間比例較低的房子往往更貴。每戶房間的數(shù)量也比一個(gè)地區(qū)的房間總數(shù)更具信息量,顯然房子越大,它們就越貴。
這一輪探索不需要很徹底,關(guān)鍵是要從正確的腳步開(kāi)始并快速獲得見(jiàn)解,這將幫助你獲得第一個(gè)相當(dāng)不錯(cuò)的原型。但這是一個(gè)迭代過(guò)程:一旦你啟動(dòng)并運(yùn)行了一個(gè)原型,你就可以分析它的輸出來(lái)獲得更多的見(jiàn)解并返回到這個(gè)探索步驟。
- 機(jī)器學(xué)習(xí)的算法分析和實(shí)踐
- AI辦公高手速成:工具與提效技巧大全
- PVCBOT零基礎(chǔ)機(jī)器人制作(第3版)
- 人工智能不會(huì)做什么:100億人類與100億機(jī)器人共存的未來(lái)
- 聯(lián)邦學(xué)習(xí)實(shí)戰(zhàn)
- 突破邊界:AI大模型驅(qū)動(dòng)數(shù)智化能力變革
- 人工智能:從科幻中復(fù)活的機(jī)器人革命
- AIGC輔助軟件開(kāi)發(fā):ChatGPT 10倍效率編程實(shí)戰(zhàn)
- 智能汽車軟件功能安全
- 深入淺出圖神經(jīng)網(wǎng)絡(luò):GNN原理解析
- 機(jī)器人愛(ài)好者(第3輯)
- 知識(shí)圖譜實(shí)戰(zhàn):構(gòu)建方法與行業(yè)應(yīng)用
- 智能語(yǔ)音處理
- 深度學(xué)習(xí):導(dǎo)讀手冊(cè)
- ChatGPT漫談