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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【机器学习】特征预处理

發布時間:2024/9/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】特征预处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

特征預處理

目標

  • 了解數值型數據、類別型數據特點

  • 應用MinMaxScaler實現對特征數據進行歸一化

  • 應用StandardScaler實現對特征數據進行標準化

1、什么是特征預處理

特征預處理:通過一些轉換函數將特征數據轉換成更加適合算法模型的特征數據過程


可以通過上面那張圖來理解

1.1 包含內容

數值型數據的無量綱化:

  • 歸一化

  • 標準化

1.2 特征預處理API

sklearn.preprocessing

為什么我們要進行歸一化/標準化?

特征的單位或者大小相差較大,或者某特征的方差相比其他的特征要大出幾個數量級,容易影響(支配)目標結果,使得一些算法無法學習到其它的特征

約會對象數據

我們需要用到一些方法進行無量綱化,使不同規格的數據轉換到同一規格

歸一化

定義

通過對原始數據進行變換把數據映射到(默認為[0,1])之間

公式

作用于每一列,max為一列的最大值,min為一列的最小值,那么X’’為最終結果,mx,mi分別為指定區間值默認mx為1、mi為0

那么怎么理解這個過程呢?我們通過一個例子

API

  • sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
    • MinMaxScalar.fit_transform(X)
      • X:numpy array格式的數據[n_samples,n_features]
    • 返回值:轉換后的形狀相同的array

數據計算

我們對以下數據進行運算,在dating.txt中。保存的就是之前的約會對象數據

milage,Liters,Consumtime,target 40920,8.326976,0.953952,3 14488,7.153469,1.673904,2 26052,1.441871,0.805124,1 75136,13.147394,0.428964,1 38344,1.669788,0.134296,1

分析

  • 實例化MinMaxScalar

  • 通過fit_transform轉換

def minmax_demo():"""歸一化:return:"""# 1、獲取數據data = pd.read_csv("dating.txt")data = data.iloc[:, :3]print(data)# 2、實例化一個轉換器類transform = MinMaxScaler()# transform = MinMaxScaler(feature_range=[2, 3])# 3、調用fit_transformdata_new = transform.fit_transform(data)print("data_new:\n", data_new)return None

問題:如果數據中異常點較多,會有什么影響?

2.5 歸一化總結

注意最大值最小值是變化的,另外,最大值與最小值非常容易受異常點影響,所以這種方法魯棒性較差,只適合傳統精確小數據場景。

3 標準化

3.1 定義

通過對原始數據進行變換把數據變換到均值為0,標準差為1范圍內

3.2 公式

作用于每一列,mean為平均值,σ為標準差

所以回到剛才異常點的地方,我們再來看看標準化

  • 對于歸一化來說:如果出現異常點,影響了最大值和最小值,那么結果顯然會發生改變

  • 對于標準化來說:如果出現異常點,由于具有一定數據量,少量的異常點

  • 對于平均值的影響并不大,從而方差改變較小。

API

  • sklearn.preprocessing.StandardScaler( )
    • 處理之后每列來說所有數據都聚集在均值0附近標準差差為1
    • StandardScaler.fit_transform(X)
      • X:numpy array格式的數據[n_samples,n_features]
    • 返回值:轉換后的形狀相同的array

數據計算

同樣對上面的數據進行處理

[[90,2,10,40], [60,4,15,45], [75,3,13,46]]

分析

  • 實例化StandardScaler

  • 通過fit_transform轉換

def stand_demo():"""進行標準化在已有樣本足夠多的情況下,適合現在嘈雜大數據場景:return:"""# 1、獲取數據data = pd.read_csv("dating.txt")data = data.iloc[:, :3]print(data)# 2、實例化一個轉換器類transform = StandardScaler()# 3、調用fit_transformdata_new = transform.fit_transform(data)print("data_new:\n", data_new)return None

標準化總結

在已有樣本足夠多的情況下比較穩定,適合現代嘈雜大數據場景。

總結

以上是生活随笔為你收集整理的【机器学习】特征预处理的全部內容,希望文章能夠幫你解決所遇到的問題。

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