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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 4 —— 数据探索与可视化、发现规律

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 4 —— 数据探索与可视化、发现规律 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

紅色石頭的個人網站:redstonewill.com

目前為止,我們已經對數據有了初步的認識,大體上明白了我們要處理的數據類型。現在,我們將進入更深入的研究。

首先,確保已經劃分了測試集并放置一邊,我們只會對訓練集進行操作。另外,如果訓練集很大,可以從中采樣一些作為探索集(exploration set),方便進行快速處理。在我們這個例子中,數據集比較小,所以直接在訓練集上處理即可。我們還要創建一個訓練集的復制副本,這樣就不會改動原來的訓練集了。

housing = strat_train_set.copy()

1. 地理數據可視化

因為數據集中包含了地理位置信息(經緯度),所以創建所有地區的散點圖來可視化數據是個好主意(如下圖所示)。

housing.plot(kind="scatter", x="longitude", y="latitude")

這看起來有點像加州,但是很難看出任何規律。我們設置參數 alpha = 0.1,這樣就更容易看出數據點的密度了(如下圖所示)。

housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.1)

現在,我們可以很清晰地看出這些密度較大的區域了。

通常來說,人類的大腦非常善于發現圖片中的模式,但是也需要使用一些可視化參數來讓這些模式更加突出。

接下來,我們來看一下房屋價格(如下圖所示)。其中,圓的半徑代表地區人口(參數 s),圓的顏色代表房價(參數 c)。我們將使用預先定義好的顏色圖 jet(參數 cmap),顏色范圍從藍色(低房價)到紅色(高房價)。

housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4,s=housing["population"]/100, label="population", figsize=(10,7),c="median_house_value", cmap=plt.get_cmap("jet"), colorbar=True,sharex=False) plt.legend() save_fig("housing_prices_scatterplot")

注意,參數 sharex=False 修復了顯示 x 軸和 legend 不顯示的 bug。感謝 Wilmer Arellano 給的建議。出處:https://github.com/pandas-dev/pandas/issues/10611。

這張圖顯示出房價與地理位置(例如沿海)和人口密度關系很大,這一點你可能早就知道。可以使用聚類算法檢測主要的聚集,增加新的特征測量到聚類中心的距離。盡管加州北部沿海地區的房價并不高,但是 ocean_proximity 屬性仍然非常有用。總的來說,預測房價并不是使用一個簡單規則就行的。

2. 尋找關聯性

因為數據集不是很大,我們可以使用 corr() 方法直接計算任意兩個屬性的標準相關系數(也稱皮爾遜相關系數)。

corr_matrix = housing.corr()

現在,我們來看一下每個屬性與房價中位數的相關系數分別是多少:

>>> corr_matrix["median_house_value"].sort_values(ascending=False)median_house_value 1.000000 median_income 0.687170 total_rooms 0.135231 housing_median_age 0.114220 households 0.064702 total_bedrooms 0.047865 population -0.026699 longitude -0.047279 latitude -0.142826 Name: median_house_value, dtype: float64

相關系數范圍在 [-1, 1] 之間,越接近 1 表示正相關性越強,例如房價中位數與收入中位數。相關系數越接近 -1 表示負相關性越強。你可以看到房價中位數與維度呈現負相關性(數據顯示越往北方,房價呈下降趨勢)。最后,相關系數接近 0 表示無線性相關。下圖展示了 x 軸與 y 軸對應數據的相關系數。

相關系數僅僅測量的是線性相關性(如果 x 增大,y 也同樣增大或減小),可能完全忽略非線性關系(例如,x 在 0 附近,y 會增大)。注意,上圖中最下面的那幾張圖表示的都是相關系數為零的情況,但是它們是非線性相關。第二行展示的幾個圖形相關系數為 1 或 -1,注意與直線的斜率無關。

另外一種檢查不同屬性特征之間的相關系數的方法是使用 Pandas 的 scatter_matrix 函數。它將對每個數值屬性與其它所有數值屬性的相關性進行作圖。因為現在有 9 個數值屬性,總共有 9x9=81 個圖,頁面放不下這么多。所以,我們只選擇幾個與房價中位數關系較大的屬性來作圖。

from pandas.tools.plotting import scatter_matrixattributes = ["median_house_value", "median_income", "total_rooms", "housing_median_age"] scatter_matrix(housing[attributes], figsize=(12, 8))

上圖中,主對角線對應的相關系數全是直線(自己與自己的相關系數始終為 1),作圖沒有實質意義,因此顯示的實際上是每個屬性的柱狀圖。關于其它選項設置,可以參閱 Pandas 的文檔。

看起來,最有可能用來預測房價中位數的屬性是收入中位數,讓我們把該圖放大來看:

housing.plot(kind="scatter", x="median_income", y="median_house_value", alpha=0.1)

這張圖說明了幾點:第一,相關性較強。你可以清楚看到數據點整體呈上升趨勢,并不分散。第二,我們之前提過的價格上限 $500,000 呈現一條水平直線。同樣在 $450,000、$350,000 和 $280,000 的位置也呈現了較弱的水平直線。在訓練模型的時候最好移除這些樣本點,防止算法學習到這些不好的數據。

3. 嘗試結合不同的屬性

希望前面的章節給了你一些探索數據、獲取規律的方法。你發現了一些數據怪癖,在把數據放入機器學習算法之前,將其清除。你也發現了不同屬性之間的相關性,尤其是與目標屬性的相關性。你也注意到有些屬性呈現長尾分布,可以進行轉換處理(例如計算它們的對數)。當然,不同項目的處理方法并不完全相同,但是大致思路是類似的。

在準備數據給機器學習算法之前,你還可以嘗試進行不同的屬性組合。例如,如果你不知道地區有多少戶,只知道地區總的房間數也沒什么作用。你最想知道的是每戶有多少房間。類似地,知道臥室數量也沒什么用,你可能需要將其與房屋數量進行比較。還有,每戶人口數應該也比較重要。下面,我們來創建這些屬性:

housing["rooms_per_household"] = housing["total_rooms"]/housing["households"] housing["bedrooms_per_room"] = housing["total_bedrooms"]/housing["total_rooms"] housing["population_per_household"]=housing["population"]/housing["households"]

現在,我們再來看一下相關矩陣:

>>> corr_matrix = housing.corr() >>> corr_matrix["median_house_value"].sort_values(ascending=False)median_house_value 1.000000 median_income 0.687170 rooms_per_household 0.199343 total_rooms 0.135231 housing_median_age 0.114220 households 0.064702 total_bedrooms 0.047865 population_per_household -0.021984 population -0.026699 longitude -0.047279 latitude -0.142826 bedrooms_per_room -0.260070 Name: median_house_value, dtype: float64

看起來還不錯!bedrooms_per_room 屬性與房價中位數的相關性比單獨的 total_rooms 和 total_bedrooms 與房價中位數的相關性更大。可以看出,bedroom/room 比值越小,房價越高。rooms_per_household 屬性也比 total_rooms 包含了更多的信息——顯然,房屋越大,價格就越高。

這一輪的探索不一定要非常完備。重要的是正確開始并快速發現一些規律,這將幫助你得到第一個合理的原型。這是一個迭代的過程:一旦你得到一個原型開始運行,你就可以分析它的輸出,發現更多規律,然后回過頭來繼續探索數據,不斷優化模型。

項目地址:

https://github.com/RedstoneWill/Hands-On-Machine-Learning-with-Sklearn-TensorFlow


總結

以上是生活随笔為你收集整理的Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 4 —— 数据探索与可视化、发现规律的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 都市激情亚洲色图 | 中文视频一区 | 黄色污污网站在线观看 | 成人在线观看免费爱爱 | 美女黄色片网站 | 香蕉在线视频观看 | av色在线 | 欧美中文字幕在线视频 | 国产污污视频在线观看 | 久久人人爱 | 反差在线观看免费版全集完整版 | 新版红楼梦在线高清免费观看 | 性――交――性――乱 | 玖草影院| 草莓视频一区二区三区 | 免费观看黄色av | 小明天天看 | 国产一区二区 | 男人干女人视频 | 久久久精品99 | 男女视频一区二区 | 九九在线观看视频 | 国产一区视频在线观看免费 | 日本三级大片 | 欧美三日本三级少妇三级99观看视频 | 国产精品美女一区二区 | 亚洲色图1 | 日韩欧美黄色大片 | av在线毛片 | 性色一区二区 | 在线99 | 91成人一区二区三区 | 狼性av懂色av禁果av | 91免费片 | 亚洲黄色av| 欧亚成人av | 欧美黄色大片免费观看 | 性欧美巨大乳 | 国产激情一区二区三区 | 国产理论片 | 日韩视频三区 | 成人网导航| 亚洲国产av一区二区三区 | 日本成人午夜视频 | 成人激情视频在线播放 | 在线免费观看成年人视频 | 亚洲精品专区 | 国产精品www | 亚洲一区二区三区中文字幕 | 放荡的少妇2欧美版 | 4438色| 精品国产乱码久久久久久88av | 国产视频一区二区三 | 热久久伊人 | 天天插夜夜爽 | 日本欧美日韩 | 日韩在线观看免费高清 | 亚洲va久久久噜噜噜无码久久 | 一级特黄aa大片 | 爱情岛论坛亚洲品质自拍 | 国产精品.com | 一区二区三区免费在线观看 | 女同在线视频 | 奇米视频在线观看 | 美女网站污| 国产日韩精品电影 | www日韩av| 91成人免费版 | 操干视频 | 国产成人精品一区二区三 | 男生捅女生肌肌 | 欧美日本亚洲韩国国产 | 综合久色| 欧美日韩一区二区中文字幕 | 熟妇人妻系列aⅴ无码专区友真希 | 日韩字幕在线观看 | 国产精品性爱在线 | 在线观看一级片 | 日本大尺度激情做爰hd | xxxx毛片 | 亚洲一区二区三区高清 | 午夜黄色av | 国产精品 欧美激情 | 美女洗澡隐私免费网站 | 亚洲一卡二卡在线 | 香蕉视频91 | 国产第一亚洲 | 国产又粗又猛又爽免费视频 | 免费麻豆视频 | 男女男精品视频网站 | www.国产视频 | 99re在线视频免费观看 | 偷偷色噜狠狠狠狠的777米奇 | 亚洲精品粉嫩小泬20p | 91porny丨首页入口在线 | 国产人成视频在线观看 | 玩弄人妻少妇500系列视频 | 国产性生活网站 | 女警白嫩翘臀呻吟迎合 |