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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

机器学习中数据标准化相关方法

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习中数据标准化相关方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????拿到一批原始數據后,經過對缺失值的填補、異常值的處理以及組合型數據的生成,可以得到一份較為完整的數據集。但是不同指標具有不同的性質(連續、離散)和不同的數量級,直接進行訓練會削弱數量級較低數據帶來的影響,所以還需要對數據進行標準化處理(目標值通常不需要縮放),才能讓數據可以投入訓練。

????????數據標準化就是把有量綱的數據變成無量綱的數據,把量級不同的數據處理到同一個量級,從而讓不同緯度的數據之間具有可比性,對于機器學習來說,用來提升模型的預測效果。

????????具體常用的標準化方法有如下幾種:

? ? ? ? 1.Min-max標準化(Min-max normalization)

?? ? ? ?2.z-score標準化(zero-mena normalization)

?? ? ? ?3.log函數轉換

?? ? ? ?4.atan函數轉換

1.Min-max標準化(Min-max normalization)

????????min-max標準化也稱為最小-最大縮放、歸一化。歸一化的邏輯是將數據縮放到0~1之間,實現方法很簡單。是將值減去最小值并除以最大值和最小值之差。 公式為:

????????Scikit-learn提供了一個名為MinMaxScaler的轉換器,具體使用方法為:

from sklearn.preprocessing import MinMaxScalerdata = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]] scaler = MinMaxScaler() print(scaler.fit(data)) print("*" * 30) print(scaler.data_max_) print("*" * 30) print(scaler.transform(data))

? ? ? ? 結果為:

MinMaxScaler() ****************************** [ 1. 18.] ****************************** [[0. 0. ][0.25 0.25][0.5 0.5 ][1. 1. ]]

? ? ? ? MinMaxScaler可用參數:

? ? ? ? ? ? ? ? feature_rangetuple(min,max), default=(0,1):調整參數可以手動設定要縮放到的具體范圍

2.z-score標準化(zero-mena normalization)

????????z-score標準化方法為先減去平均值(所以標準化的均值總是0),然后除以方差,從而使得結果的分布具備單位方差,不同于最小最大縮放的是,標準化不將值綁定到特定范圍,對于某些算法來說,可能是個問題(例如,神經網絡期望輸入的值范圍是0~1)。但是標準化的方法受異常值的影響更小。Scikit-Learn提供了一個標準化轉換器StandardScaler,具體使用方法為:

from sklearn.preprocessing import StandardScalerdata = [[0, 0], [0, 0], [1, 1], [1, 1]] scaler = StandardScaler() print(scaler.fit(data)) print("*"*30) print(scaler.mean_) print("*"*30) print(scaler.transform(data))

? ? ? ? 結果為

StandardScaler() ****************************** [0.5 0.5] ****************************** [[-1. -1.][-1. -1.][ 1. 1.][ 1. 1.]]

3.log函數轉換

?? ? ? ?通過以10為底的log函數轉換的方法同樣可以通過x=log10(x)實現歸一化,但是要是需要數據一定落到[0,1]區間上,應該還要除以log10(max),max為樣本數據最大值,并且所有的數據都要大于等于1。公式為

?? ? ? ?python中log10函數計算方法

import numpy as npy = np.log10(x)import mathy = math.log10(x)

4.atan函數轉換

????????用反正切函數也可以實現數據的歸一化,使用這個方法需要注意的是如果想映射的區間為[0,1],則數據都應該大于等于0,小于0的數據將被映射到[-1,0]區間上,公式為

?? ? ? ?python中反正切函數計算方法

import mathy = math.atan(x)

參考鏈接:數據標準化方法 - 知乎

總結

以上是生活随笔為你收集整理的机器学习中数据标准化相关方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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