Python进行数据处理

来源:互联网 发布:mysql恢复数据库 编辑:程序博客网 时间:2024/05/18 03:04
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 17 17:15:14 2017


@author: cq
"""
#二元化
from sklearn.preprocessing import Binarizer
x=[[1,2,3,4,5],
   [5,4,3,2,1],
   [3,3,3,3,3],
   [1,1,1,1,1]]


x
binarizer=Binarizer(threshold=2.5)
binarizer.transform(x)#得到最终结果


from sklearn.preprocessing import OneHotEncoder
x=[[1,2,3,4,5],
   [5,4,3,2,1],
   [3,3,3,3,3],
   [1,1,1,1,1]]


x
#默认对所有特征
encoder=OneHotEncoder(sparse=False)#采用热编码,但是不要稀疏
encoder.fit(x)
encoder.active_features_#得到出现的特征
encoder.feature_indices_#原始数据的第i个属性对应转换后数据的【feature_indices_[i],feature_indices_[i+1]
encoder.n_values_   #每个属性取值的种类
encoder.transform([1,2,3,4,5]) #进行测试


#只针对第一个和第二个特征
encoder=OneHotEncoder(categorical_features=(0,1),sparse=False)
encoder.fit(x)
encoder.active_features_
encoder.feature_indices_
encoder.categorical_features
encoder.n_values_
encoder.transform([1,2,3,4,5])


#数据标准化
from sklearn.preprocessing import MinMaxScaler
x=[[1,5,1,2,10],
   [2,6,3,2,7],
   [3,7,5,6,4],
   [4,8,7,8,1]]
x
scaler=MinMaxScaler(feature_range=(0,2)) #最后结果范围是(0,2)
scaler.fit(x)
scaler.min_   
scaler.scale_
scaler.data_min_
scaler.data_max_
scaler.data_range_
scaler.transform([5,3,1,4,3])


#maxabsscaler
from sklearn.preprocessing import MaxAbsScaler
x=[[1,5,1,2,10],
   [2,6,3,2,7],
   [3,7,5,6,4],
   [4,8,7,8,1]]
x
scaler=MaxAbsScaler()
scaler.fit(x)
scaler.max_abs_
scaler.transform(x)




#standardscaler
from sklearn.preprocessing import StandardScaler
x=[[1,5,1,2,10],
   [2,6,3,2,7],
   [3,7,5,6,4],
   [4,8,7,8,1]]
x
scaler=StandardScaler()
scaler.fit(x)
scaler.scale_
scaler.mean_
scaler.var_
scaler.transform(x)




#正则化
from sklearn.preprocessing import Normalizer
x=[[1,5,1,2,10],
   [2,6,3,2,7],
   [3,7,5,6,4],
   [4,8,7,8,1]]
x
normalizer=Normalizer(norm='l2')
normalizer.fit(x)
normalizer.transform(x)
#使用l1范数
normalizer=Normalizer(norm='l1')
normalizer.fit(x)
normalizer.transform(x)




#过滤式特征选择
#variance threshold
from sklearn.feature_selection import VarianceThreshold
x=[[100,1,2,3],
   [100,4,5,6],
   [100,7,8,9],
   [101,11,12,13]]
x
selector=VarianceThreshold(1)
selector.fit(x)
selector.variances_
selector.transform(x)
selector.get_support(True)
selector.inverse_transform(selector.transform(x))






#单变量特征选择
from sklearn.feature_selection import SelectKBest,f_classif
x=[[1,2,3,4,5],
   [5,4,3,2,1],
   [3,3,3,3,3],
   [1,1,1,1,1]]


x


y=[0,1,0,1]
selector=SelectKBest(score_func=f_classif,k=3)
selector.fit(x,y)
selector.scores_
selector.pvalues_
selector.get_support(True)
selector.transform(x)
原创粉丝点击