機器學習特性縮放的介紹,什麼時候為什麼使用

2021-02-21 書圈

在這篇文章中,我們將討論什麼是特徵縮放以及為什麼我們在機器學習中需要特徵縮放。我們還將討論數據的標準化,以及使用scikit-learn實現同樣的標準化。


什麼是特性縮放?

特徵縮放是對輸入數據進行標準化/規範化所需要的重要預處理之一。當每一列的值範圍非常不同時,我們需要將它們擴展到公共級別。這些值重新規劃成公共水平,然後我們可以對輸入數據應用進一步的機器學習算法。

我們有不同的特徵,其中一個特徵的數據可能以公裡表示,另一列的數據可能以米表示,最後一列的數據可能以釐米表示。在將算法應用到數據上之前,首先需要將數據放到「米」、「公裡」或「釐米」的公共尺度上進行有效的分析和預測。

縮放前輸入數據

在上面的數據集中,我們可以看到列1和列2中的值有非常不同的範圍。第一列值表示年齡在30到90歲之間,而工資值在30000到15000之間變化。所以兩列值的比例是截然不同的。在進一步分析之前,我們需要將其調整到相同的範圍。

縮放後的輸出

縮放值的一種方法是將所有列的值從0到1或者我們可以將它們的值放在-3到3之間。將值更新到新的範圍的過程通常稱為Normalization 或 Standardization.。

下面是標準縮放後的數據輸出。從數據中可以看出,所有的值都在-3到3之間。

數據標準化後的數據如下。可以看出,年齡和薪水的數據介於0到1之間。

為什麼我們需要特徵縮放?

要獲得正確的預測和結果,就需要特徵縮放。如果某一列的值與其他列相比非常高,則具有更高值的列的影響將比其他低值列的影響高得多。高強度的特徵比低強度的特徵重得多,即使它們在確定輸出中更為關鍵。因此,預測可能無法給出預期的結果,並且可能無法滿足業務用例。

機器學習算法也可能對範圍較小的列不敏感,並可能導致不一致

總而言之,功能縮放是必需的,因為:

回歸係數直接受特徵範圍的影響

具有較高比例的功能比具有較低比例的功能更重要

如果我們具有縮放值,則可以輕鬆實現漸變下降

如果按比例縮放,某些算法將減少執行時間。

一些算法基於歐幾裡得距離,歐幾裡得距離對特徵尺度非常敏感。

不同的特徵縮放技術

我們可以使用不同的縮放技術來縮放輸入數據集。我們可以應用以下任一方法:

Normalization 或 Standardization

什麼是歸一化(Normalization )?

歸一化是在0到1之間縮放要素值歸一化。這稱為最小-最大縮放。

在上式中:

Xmax和Xmin是功能列的最大值和最小值

X的值始終在最小值和最大值之間

使用Scikit Learn進行數據歸一化

以下是使用Scikit Learn進行歸一化的簡單實現。

 import pandas
 import numpy as np
 
 dataset = pandas.read_csv("./data/FirstDataset.csv")
 
 X = dataset.iloc[:, :].values
 
 from sklearn.preprocessing import MinMaxScaler
 norm = MinMaxScaler()
 X[:, 1:3] = norm.fit_transform(X[:, 1:3])
 print(X)

什麼是機器學習的標準化?

標準化基於標準偏差。它衡量功能中價值的傳播。這是最常用的之一。

在標準縮放過程中,我們將特徵的均值偏移為0,標準偏差為1。應用標準縮放器時,我們獲得的值在-3到3範圍內

當對特徵值應用標準偏差時,特徵集中值的99.7%介於-3 SD(標準偏差)至3 SD(標準偏差)之間。

讓我們看一下示例:

在上述情況下,值在-3到3之間標準化,因此減小了數據列中值的範圍。縮放這些值後,可以將其輸入到機器學習算法進行進一步分析。

 import pandas
 import numpy as np
 
 dataset = pandas.read_csv("./data/FirstDataset.csv")
 
 X = dataset.iloc[:, :].values
 
 from sklearn.preprocessing import StandardScaler
 norm = StandardScaler()
 X[:, 1:3] = norm.fit_transform(X[:, 1:3])
 print(X)

在Scikit-Learn中應用Standard Scaler

當數據遵循高斯曲線時,我們可以應用標準縮放器。如果數據遵循高斯曲線,則標準偏差變得易於計算且有效,並且在預測時會給出出色的結果。

對特徵縮放敏感的算法

下面給出了一些對特徵縮放非常敏感的算法。這些算法對特徵縮放很敏感,因為它們取決於距離和高斯曲線。

線性和邏輯回歸

神經網絡

支持向量機

K均值聚類

K最近鄰居

主成分分析

對特徵縮放不敏感的算法

對特徵縮放不敏感的算法通常是「基於樹的」算法

標準化和歸一化

這些關鍵字經常可互換使用。雖然歸一化是在0到1之間縮放值,但是標準化大約是將平均值設為0,將標準偏差設為1。在確定我們需要標準化還是歸一化時,需要考慮一些要點。

當數據代表高斯曲線時,可以使用標準化

標準化不受異常值的影響。

歸一化對異常值的影響很高

非高斯曲線表示時的歸一化效果很好

作者:Mayank Gupta

deephub翻譯組

京東購書,贈送超值禮包    

相關焦點

  • 使用sklearn輕鬆實現數據縮放
    本文參考翻譯Jason Brownlee博客機器學習在建模之前,需要做數據準備。數據準備的過程主要包括3個步驟:本文會告訴你兩種方法,即如何使用Python的Scikit-Learn庫進行簡單的數據轉換。
  • 簡介機器學習中的特徵工程
    這些細節是數據集的特性。創建數據集的任務是從原始數據中了解有用的特性,並從對結果有影響的現有特性中創建新特性,或者操作這些特性,使它們可以用於建模或增強結果。整個過程被簡稱為特性工程。有多種方法可以實現特徵工程。根據數據和應用程式不同來分類。在本文中,我們將了解為什麼使用特徵工程和特徵工程的各種方法。為什麼使用特徵工程?
  • 為什麼縮放後字高不變?
    還有更奇怪的問題:從其他軟體裡轉過來的圖紙,想將圖紙縮放SC改變一下尺寸,結果圖形都正常縮放了,但文字高度卻沒有變。文字高度值是相同的,為什麼在圖中看起來高度差別這麼大呢?為什麼縮放SC後文字高度還不變呢?
  • 各種機器學習分類算法的優缺點
    機器學習中有許多分類算法。本文將介紹分類中使用的各種機器學習算法的優缺點,還將列出他們的應用範圍。SVM(支持向量機)SVM的優點:1.在高維中表現良好。在現實世界中有無限維度(不僅僅是2D和3D)。不需要縮放特徵:不需要縮放輸入特徵(也可以使用縮放特徵,但是不需要縮放)。3. 不需要調整超參數。邏輯回歸的缺點:1.非線性數據(例如圖像數據)性能不佳。2.
  • 「CAD」利用塊對圖形進行非等比例縮放
    之前介紹了縮放命令的使用方法,縮放命令可以把選擇的圖形放大或縮小一個比例,也可以按參照縮放一個比例。需要說明的是,縮放命令是對圖形等比例縮放的,圖形的長寬比是鎖定的。就算真的需要對圖形進行非等比例縮放,縮放命令也是不能實現這個操作的。
  • 區別於數據科學:構建機器學習工程平臺意味著什麼?
    我們在Cortex上的研究代表了過去一年來加速趨勢的一部分,即機器學習工程生態系統的發展。公司僱傭機器學習工程師的速度比以往任何時候都要快,發布的項目也越來越好。這讓我們感到很興奮。但有一個問題仍然時常出現:「什麼是機器學習工程?」本文將帶你找到答案,以及為機器學習工程師構建一個平臺意味著什麼。
  • Weka機器學習使用介紹(數據+算法+實戰)
    Weka機器學習使用介紹(數據+算法+實戰)Weka是懷卡託智能分析環境(Waikato Environment
  • 在機器學習項目中該如何選擇優化器
    介紹為你的機器學習項目選擇一個好的優化器是非常困難的。熱門的深度學習庫,如PyTorch或TensorFlow,提供了廣泛的優化器的選擇,不同的優化器,每個都有自己的優缺點。這個想法與AdaGrad相似,但是梯度的重新縮放不那麼激進:梯度的平方的總和被梯度平方的移動平均值所取代。RMSprop通常與動量一起使用,可以理解為Rprop對mini-batch設置的適應。Adam
  • 一文詳解特徵縮放、標準化、歸一化的定義、區別、特點和作用
    前言我在學李宏毅的機器學習課程,助教給的回歸作業代碼中有數據標準化的操作。我聽過數據標準化,還有歸一化、批量歸一化等等,但不是很懂,不知道他們具體是什麼、有什麼區別。為什麼需要進行特徵縮放背景:多指標量綱和數量級不同使用單一指標對某事物進行評價並不合理,因此需要多指標綜合評價方法。多指標綜合評價方法,就是把描述某事物不同方面的多個指標綜合起來得到一個綜合指標,並通過它評價、比較該事物。由於性質不同,不同評價指標通常具有不同的量綱和數量級。
  • 從 0 開始機器學習 - 一文入門多維特徵梯度下降法!
    今天登龍跟大家分享下我對多維特徵的讀取、縮放和多變量梯度下降算法的理解,文章不長,有理論也有實際的代碼,下面開始,Go!一、如何表示多維特徵?1.1 特徵縮放實際項目中在讀取多維特徵之前需要先對數據進行縮放,為什麼呢?
  • python機器學習預測分析核心算法.pdf
    AI項目體驗地址 https://loveai.tech《Python機器學習 預測分析核心算法》內容簡介  在學習和研究機器學習的時候,面臨令人眼花繚亂的算法,機器學習新手往往會不知所措。本書從算法和Python語言實現的角度,幫助讀者認識機器學習。
  • 使用Python開始機器學習
    男女老少都在學機器學習模型,分類器,神經網絡和吳恩達。你也想成為一份子,但你該如何開始?在這篇文章中我們會講Python的重要特徵和它適用於機器學習的原因,介紹一些重要的機器學習包,以及其他你可以獲取更詳細資源的地方。為什麼用Python做機器學習Python很適合用於機器學習。首先,它很簡單。
  • C++機器學習庫介紹
    介紹我喜歡使用C++。C++是我學習過的第一種程式語言,我喜歡在機器學習中使用它。我在之前寫過關於構建機器學習模型的文章。我收到了一個回復,問我C++有沒有機器學習的庫?這是個公平的問題。像Python和R這樣的語言有大量的包和庫來滿足不同的機器學習任務。
  • 「CAD」縮放命令的兩種使用方法
    縮放命令是修改工具欄裡面一個使用頻率非常高的命令。在繪製圖形的過程中,經常需要把一個圖形放大或者縮小,此時縮放命令就派上用場啦!縮放的時候一般有兩種方法,一種是按比例縮放,另一種是按參照來縮放。兩種縮放方法都是經常要用的,所以有必要全部掌握。本次就通過一個正六邊形,來說下兩種縮放的方法。下面就來看看吧!!!BEGIN1.
  • Win10怎麼縮放比例布局 自定義縮放屏幕比例方法介紹
    Win10怎麼縮放比例布局 自定義縮放屏幕比例方法介紹  現在高分屏的win10筆記本電腦是越來越多了,一般解析度越高屏幕的清晰度就越高,看到的圖像就會越清楚。但是也並不是解析度越高就越好,也會帶來一些小問題,比如解析度變高會讓字體縮放變的很小,看久了眼睛感覺很累。那麼Win10如何自定義縮放屏幕比例?
  • 機器學習是什麼?
    一開始你會覺得機器學習好似變戲法一般深不可測,但當你深入其中,會發現它就是一堆用來從數據中挖掘信息的工具。數據就在我們身邊在過去,人們往往通過分析數據,並針對數據模式的變化來適配軟體系統。但是,當數據容量超越人類的感知或模式制定能力之後,我們不得不傾向於使用那些可以從數據自主總結歸納的方式,尤其是從變化的數據中自主學習的軟體系統。
  • python機器學習:常用庫的介紹及安裝
    現在,隨著人工智慧的興起,機器學習越來越被各行業看重,從而使得人工智慧的需求會越來越大。今天,我們就從零基礎開始學習人工智慧的基礎篇——機器學習。工欲善其事必先利其器,所以,我們首先來看一下,我們要學習這些東西,需要準備些什麼!首先電腦一臺,這是必備的。下面我們來看一下需要安裝些什麼軟體到電腦上!
  • CAD常用技巧 如何不等比例縮放圖形
    縮放在CAD中也是一項常用的操作,但我們平時用的都是以等比例縮放為主,那有沒有方法能做到不等比例縮放呢?其實是有的,雖然算不上什麼特殊技巧,隱藏功夫,但是對於新手來說,會加深對CAD設計的理解。二、做成塊,再分別調整比例利用B命令把圖形做成塊,之後在CTRI+1調出特性面板之後,能看到坐標有關於各軸的比例因子,通過輸入比例因子能對圖形的某個軸方向進行縮放。如果要恢復之前的可編輯狀態,那就要用X炸開。
  • Spark機器學習.pdf
    1.8 小結第2章 設計機器學習系統2.1 MovieStream 介紹2.2 機器學習系統商業用例2.2.1 個性化2.2.2 目標營銷和客戶細分2.2.3 預測建模與分析2.3 機器學習模型的種類2.4 數據驅動的機器學習系統的組成2.4.1 數據獲取與存儲2.4.2 數據清理與轉換2.4.3 模型訓練與測試迴路