青岛网站建设华夏,佛山做网站企业,做网站烧钱吗,sharepoint做网站文章目录 数据无量纲化preprocessing.MinMaxScaler#xff08;归一化#xff09;导库归一化另一种写法将归一化的结果逆转 preprocessing.StandardScaler(标准化)导库实例化查看属性查看结果逆标准化 缺失值impute.SimpleImputer另一种填充写法 处理分类型特征#xff1a;编… 文章目录 数据无量纲化preprocessing.MinMaxScaler归一化导库归一化另一种写法将归一化的结果逆转 preprocessing.StandardScaler(标准化)导库实例化查看属性查看结果逆标准化 缺失值impute.SimpleImputer另一种填充写法 处理分类型特征编码与哑变量preprocessing.LabelEncoder标签专用能够将分类转换为分类数值preprocessing.OrdinalEncoder特征专用能够将分类特征转换为分类数值preprocessing.OneHotEncoder独热编码创建哑变量 处理连续性特征二值化与分段sklearn.preprocessing.Binarizerpreprocessing.KBinsDiscretizer 数据无量纲化 preprocessing.MinMaxScaler归一化 导库
from sklearn.preprocessing import MinMaxScaler
data [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]归一化
# 实现归一化
scaler MinMaxScaler() #实例化
scaler scaler.fit(data) #在这里本质是生成min(x), 和max(x)
result scaler.transform(data) # 通过接口导出结果
result另一种写法
scaler MinMaxScaler() #实例化
result_ scaler.fit_transform(data) # 训练和导出结果一步达成
result_将归一化的结果逆转
scaler.inverse_transform(result) # 将归一化后的结果逆转用numpy实现归一化
import numpy as np
X np.array([[-1, 2], [-0.5, 6], [0, 10], [1, 18]])
# 归一化
X_nor (X - X.min(axis0)) / (X.max(axis0) - X.min(axis0))
X_nor逆转
X_returned X_nor * (X.max(axis0) - X.min(axis0)) X.min(axis0)
X_returnedpreprocessing.StandardScaler(标准化) 导库
from sklearn.preprocessing import StandardScaler
data [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]实例化
scaler StandardScaler() # 实例化
scaler.fit(data) # 本质是生成均值和方差查看属性
scaler.mean_ #查看均值的属性mean_
scaler.var_ # 查看方差的属性var_查看结果
x_std scaler.fit_transform(data)
x_std逆标准化
return_x scaler.inverse_transform(x_std)
return_x关于如何选择这两种无量纲化的方式要具体问题具体分析但是我们一般在机器学习算法中选择标准化这就好比我们能让他符合标准正态分布为什么不呢而且MinMaxScaler对异常值很敏感如果有一个很大的值会把其他值压缩到一个很小的区间内 缺失值 impute.SimpleImputer 导库
import pandas as pd
data pd.read_csv(rC:\Users\cxy\OneDrive\桌面\【机器学习】菜菜的sklearn课堂(1-12全课)\03数据预处理和特征工程\Narrativedata.csv,index_col0 # 告诉python第0列是索引不是属性)
data.info()提取出我们要填补的列
Age data.loc[:, Age].values.reshape(-1, 1) # reshape()能够将数据升维的方法建模
from sklearn.impute import SimpleImputer
imp_mean SimpleImputer() #实例化默认均值填补
imp_median SimpleImputer(strategymedian) # 用中位数填补
imp_0 SimpleImputer(strategyconstant, fill_value0) # 用0填补imp_mean imp_mean.fit_transform(Age)
imp_median imp_median.fit_transform(Age)
imp_0 imp_0.fit_transform(Age)用均值填补的结果 用中位数填补的结果 用0填补的结果 在实际中我们会直接把那两个缺失的数据直接删除
# 使用众数填补空缺值
Embarked data.loc[:, Embarked].values.reshape(-1, 1) # reshape()能够将数据升维的方法
imp_mode SimpleImputer(strategymost_frequent)
imp_mode imp_mode.fit_transform(Embarked)
data.loc[:, Embarked] imp_mode另一种填充写法
导库
import pandas as pd
data_ pd.read_csv(rC:\Users\cxy\OneDrive\桌面\【机器学习】菜菜的sklearn课堂(1-12全课)\03数据预处理和特征工程\Narrativedata.csv,index_col0 # 告诉python第0列是索引不是属性)
data_.head()填补
data_.loc[:, Age] data_.loc[:, Age].fillna(data_.loc[:, Age].median()) # fillna()在DataFrame里面直接进行填补删除缺失值
data_.dropna(axis0, inplaceTrue)
#axis0表示删除所有有缺失值的行。inplace表示覆盖原数据即在原数据上进行修改当inplace False时表示会产生一个复制的数据处理分类型特征编码与哑变量 preprocessing.LabelEncoder标签专用能够将分类转换为分类数值
from sklearn.preprocessing import LabelEncoder
y data.iloc[:, -1] # 要输入的时标签不是特征矩阵允许一维
le LabelEncoder()
le le.fit_transform(y)
data.iloc[:,-1] labelpreprocessing.OrdinalEncoder特征专用能够将分类特征转换为分类数值
from sklearn.preprocessing import OrdinalEncoder
data_ data.copy()
OrdinalEncoder().fit(data.iloc[:, 1:-1]).categories_
data.iloc[:, 1:-1] OrdinalEncoder().fit_transform(data.iloc[:, 1:-1])
data.head()preprocessing.OneHotEncoder独热编码创建哑变量 from sklearn.preprocessing import OneHotEncoder
X data.iloc[:1:-1]
result OneHotEncoder(categoriesauto).fit_transform(X).toarray() # 使用autopython会自己帮我们确定这个参数应该填什么
result我们如何把我们新生成的哑变量放回去 先将哑变量直接连在表的右边
newdata pd.concat([data, pd.DataFrame(result)], axis1)将不需要的列删除
newdata.drop([Sex, Embarked], axis1, inplaceTrue)
newdata.columns [Age, Survived, Female, Male, Embarked_C, Embarked_Q, Embarked_S]
newdata.head()处理连续性特征二值化与分段
sklearn.preprocessing.Binarizer from sklearn.preprocessing import Binarizer
X data_2.iloc[:,0].values.reshape(-1,1)
transformer Binarizer(threshold30).fit_transform(X)preprocessing.KBinsDiscretizer from sklearn.preprocessing import KBinsDiscretizer
X data.iloc[:, 0].values.reshape(-1, 1)
est KBinsDiscretizer(n_bins3, encodeordinal, strategyuniform)
est.fit_transform(X)