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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数据预处理(Python scikit-learn)

發布時間:2025/3/19 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据预处理(Python scikit-learn) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在機器學習任務中,經常會對數據進行預處理.如尺度變換,標準化,二值化,正規化.至于采用哪種方法更有效,則與數據分布和采用算法有關.不同算法對數據的假設不同,可能需要不同的變換,而且有時無需進行變換,也可能得到相對更好的效果.因此推薦使用多種數據變換方式,用多個不同算法學習和測試,選擇相對較好的變換方式和算法.

下面對在 Python scikit-learn 庫(也稱 sklearn 庫)中的預處理過程進行介紹:

1. 加載數據集;2. 將數據集分為用于機器學習的輸入變量和輸出變量;3. 對輸入變量進行變換(或預處理);4. 顯示變換結果(可選).

?

本文采用 scikit-learn 庫自帶的鳶尾花數據集(Iris Plants Database)作為示例.

首先,加載數據集,獲取輸入變量 X 和輸出變量 y ,示例代碼如下:

from sklearn import datasets import numpy as npdata = datasets.load_iris() X, y = data.data, data.targetnp.set_printoptions(precision=3) print ("\n" "Preprocess input variables: " "\n") print ("Raw Data: ") print (X[:5, :])

然后,變換輸入變量 X (類型為 <type 'numpy.ndarray'>),具體變換如下:

尺度變換

將輸入變量變換到某一范圍,如 0 ~ 1 區間.在 sklearn 庫中,使用 MinMaxScaler 類實現.常用于類似梯度下降的優化算法,回歸和神經網絡中的加權輸入,以及類似 K 近鄰的距離度量.示例代碼如下:

from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler(feature_range=(0,1)) rescaledX = scaler.fit_transform(X)# Print transformed data print ("\nRescaled Data: ") print(rescaledX[0:5,:])

標準化

通常適用于高斯分布的輸入變量.具體來說,將輸入變量中的每個屬性值減去其平均值,然后除以標準差,得到標準正態分布的屬性值.在 sklearn庫中,使用 StandardScaler 類實現.常用于假定輸入變量高斯分布的線性回歸,Logistic回歸和線性判決分析.

from sklearn.preprocessing import StandardScalerscaler = StandardScaler().fit(X) standardizedX = scaler.transform(X)
print ("\nStandardized Data: ") print (standardizedX[0:5,:])

正規化

將輸入變量變換為具有單位范數長度的數據.常用的范數有L1,L2,詳見我之前的博文 "數據正規化 (data normalization) 的原理及實現 (Python sklearn)". 在 sklearn 庫中,使用 Normalizer 類實現.常用于含有許多 0 的稀疏數據集,像神經網絡的采用加權輸入的算法和像 K 近鄰采用距離度量的算法.

from sklearn.preprocessing import Normalizerscaler = Normalizer().fit(X) normalizedX = scaler.transform(X)print ("\nNormalized Data: ") print (normalizedX[0:5,:])

二值化

使用門限值,將輸入數據二值化.當輸入變量值大于門限值時,變換為 1;當輸入變量值小于或等于門限值時,變換為 0.在 sklearn 庫中,使用 Binarizer 類實現.常用于獲取清晰的值的概率,產生新的有意義的屬性的特征工程.

from sklearn.preprocessing import Binarizerbinarizer = Binarizer(threshold=0.0).fit(X) binaryX = binarizer.transform(X)print ("\nBinarized Data: ") print (binaryX[0:5,:])

?

參考資料

Jason Brownlee. How To Prepare Your Data For Machine Learning in Python with Scikit-Learn.?

https://machinelearningmastery.com/prepare-data-machine-learning-python-scikit-learn/

轉載于:https://www.cnblogs.com/klchang/p/9061399.html

總結

以上是生活随笔為你收集整理的数据预处理(Python scikit-learn)的全部內容,希望文章能夠幫你解決所遇到的問題。

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