python數據預處理(入門)


數據預處理是進行數據分析的第一步,如何獲取干凈的數據是分析效果的前提。

今天學習了幾個數據預處理的入門級方法,做筆記啦!工具:python.sklearn

1、行歸一化/正則化Normalizer

使每一行的平方和為1,常用於文本分類和聚類中

z=pd.DataFrame({"a":[2.,1.,6.],"b":[3.,0,2.]})

1 from sklearn.preprocessing import Normalizer
2 Normalizer().fit_transform(z)
3 #等價的sklearn函數調用三步
4 a=Normalizer()#函數實例化
5 a.fit(z)#模型擬合
6 a.transform(z)#轉換

z歸一化后為

2、列歸一化/標准化/無量綱化Standardscaler

該方法要求數據近似為高斯分布,標准化后數據均值為0,方差為1

1 from sklearn.preprocessing import StandardScaler
2 StandardScaler().fit_transform(z)

3、區間縮放/極差變化/無量綱化

將數據映射到[0,1]區間,但新數據加入時,會影響最大/最小值,進而需重新定義,對設計距離度量的機器學習方法不適用

#區間縮放/極差變換/無量綱化
from sklearn.preprocessing import MinMaxScaler
MinMaxScaler().fit_transform(z)

4、特征二值化

設定一個閾值,大於閾值的為1,小於等於閾值的為0,。可用於二元分類問題中目標向量的處理

#特征二值化
from sklearn.preprocessing import Binarizer
Binarizer(threshold=1).fit_transform(z)#閾值設為1

5、獨熱編碼

分類器常默認數據是連續的有序的,但很多特征是離散的。因此,將所有離散特征的不同取值作為單獨一列,1表示離散特征為此列值,0表示離散特征不為此列值

#獨熱編碼
z3=pd.DataFrame({"a":["","","",""],"b":["大一","大二","大三","大一"]})
from sklearn.preprocessing import OneHotEncoder
enc=OneHotEncoder(categories="auto")
enc.fit(z3)
ans=enc.transform([["","大一"]]).toarray()#toarray()轉化為可顯示的數組形式
OneHotEncoder(categories="auto").fit_transform(z3).toarray()

上例,生成["女”,“男”,“大一”,“大三”,“大二”]為列名的4*5的矩陣,

變為

6、缺失值計算

主要是對缺失值的填充

1 z5=pd.DataFrame({"a":[1,5,np.nan],"b":[np.nan,3,5],"c":[1,2,3]})
2 from sklearn.impute import SimpleImputer
3 SimpleImputer().fit_transform(z5)#默認用均值代替缺失值
4 SimpleImputer(strategy='constant').fit_transform(z5)#參數定義用0來代替缺失值

7、以多項式構建特征

a,b兩個特征,則其2次多項式為1,a,b,a^2,b^2,ab

#以多項式構建特征
from sklearn.preprocessing import PolynomialFeatures
p1=PolynomialFeatures(degree=2,include_bias=False,interaction_only=False)#產生特征的平方項和交叉項
p2=p1.fit_transform(z)
p2_df=pd.DataFrame(p2,columns=p1.get_feature_names())#為p2增加列名
p2_df

     x0    x1    x0^2    x0 x1    x1^2
0    2.0    3.0    4.0    6.0    9.0
1    1.0    0.0    1.0    0.0    0.0
2    6.0    2.0    36.0    12.0    4.0

figthing!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM