使用Scikit-Learn轻松实现数据缩放
本文參考翻譯Jason Brownlee博客
機器學習在建模之前,需要做數據準備。數據準備的過程主要包括3個步驟:
數據選擇
數據預處理
數據轉換
本文會告訴你兩種方法,即如何使用Python的Scikit-Learn庫進行簡單的數據轉換。
一、數據縮放
你的預處理數據集中可能包含各種各樣、不同比例的特征字段,比如美元、千克、價格,有的特征列數值范圍在100以內,有的卻達到幾百萬,差異很大。
很多機器學習模型不希望有這樣大的差異,如果數據集各個屬性之間的數值差異越小,則模型表現的會越好。這里不一概而論,具體原因小伙伴們自行探索下。
方法1:數據歸一化
數據歸一化是指將原始數據縮放到0和1之間。
對于依賴于值的大小的模型,這種對輸入屬性的縮放很管用。比如在K近鄰模型的距離測量和回歸系數的準備。
接下來用都知道的鳶尾花數據集演示數據歸一化:
#?對鳶尾花數據集進行數據歸一化處理. from?sklearn.datasets?import?load_iris from?sklearn?import?preprocessing #?加載數據 iris?=?load_iris() print(iris.data.shape) #?分離原始數據集,分為自變量和因變量 X?=?iris.data y?=?iris.target #?歸一化處理 normalized_X?=?preprocessing.normalize(X)更多關于歸一化處理,詳見API
方法2:數據標準化
數據標準化是指:將數據縮放,改變每個屬性的分布,使其平均值為0,標準差為1。
諸如高斯過程等依賴于特征分布的模型,對特征進行標準化是非常有用的。
依然用鳶尾花的例子:
#?對鳶尾花數據集進行數據標準化處理. from?sklearn.datasets?import?load_iris from?sklearn?import?preprocessing #?加載數據 iris?=?load_iris() print(iris.data.shape) #?分離原始數據集,分為自變量和因變量 X?=?iris.data y?=?iris.target #?標準化處理 standardized_X?=?preprocessing.scale(X)更多關于歸一化處理,詳見API
二、說明
很難知道數據縮放是否會有利于模型的效果,大概率上是有用的,但不排除出現產生負效果。
中肯的建議是,先建立一個數據縮放后的副本,使用你的算法模型測試對比縮放前后的效果。
這可以讓你快速知道,你的模型中縮放帶來的好處或弊端。
你也可以試用不同的縮放方法,進行對比。
三、總結
數據縮放是一種非常重要的數據轉換方法。
本文介紹了歸一化和標準化兩種方法,均用Python Scikit-Learn庫提供的方法實現。簡單好用,快試試吧!
-END-
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的使用Scikit-Learn轻松实现数据缩放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WWW2020推荐系统论文合集(已分类整
- 下一篇: Python 2 最后一个版本发布,正式