
本文共 2105 字,大约阅读时间需要 7 分钟。
文章目录
一、预备知识
- pandas、numpy基本用法有所了解
- 对什么是机器学习有简单的了解
二、具体实现步骤
第1步:导入库
import numpy as npimport pandas as pd
第2步:导入数据集
dataset = pd.read_csv('Data.csv')X = dataset.iloc[ : , :-1].valuesY = dataset.iloc[ : , 3].values
第3步:处理丢失数据
from sklearn.impute import SimpleImputerimputer = SimpleImputer(missing_values = "NaN", strategy = "mean", axis = 0)imputer = imputer.fit(X[ : , 1:3])X[ : , 1:3] = imputer.transform(X[ : , 1:3])
第4步:解析分类数据
from sklearn.preprocessing import LabelEncoder, OneHotEncoderlabelencoder_X = LabelEncoder()X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
创建虚拟变量
onehotencoder = OneHotEncoder(categorical_features = [0])X = onehotencoder.fit_transform(X).toarray()labelencoder_Y = LabelEncoder()Y = labelencoder_Y.fit_transform(Y)
第5步:拆分数据集为训练集合和测试集合
from sklearn.model_selection import train_test_splitX_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)
第6步:特征标准化
from sklearn.preprocessing import StandardScalersc_X = StandardScaler()X_train = sc_X.fit_transform(X_train)X_test = sc_X.transform(X_test)
三、知识点详解
1. Imputer处理缺损数据
imputer = SimpleImputer(missing_values = 'NaN', strategy="mean",axis=0)
strategy取值支持三种,mean(均值),median(中位数),most_frequent(众数),默认mean,axis=0表示按列进行
具体用法见:
2. 关于fit()、transform()、fit_transform()
通俗的来讲fit()表示建立一个“词典”,transform()表示在建立的“词典”中查找单词,而fit_transform()表示先建立“词典”然后又在里面查找。
例如:有数据A、B、C,利用fit建立一个“词典”,在“词典”中A代表1、B代表2、C代表3,而后transform()通过“词典”将A转化为1、B转化为2、C转化为3。
labelencoder_Y.fit_transform(Y)onehotencoder.fit_transform(X).toarray()sc_X.fit_transform(X_train)
fit_transform()前面的参数则代表有着不同规则的“词典”
比较规范的解释:fit()是为计算该类处理所需的相关参数,以标准化为例,fit()就是计算标准化所用到的均值与方差;而transform()函数则是利用fit()的结果作为参数对数据进行相应的处理,比如正规化。fit_transform()就是先调用fit(),后调用transform()。
3. StandardScaler标准化
StandardScaler标准化:将特征数据的分布调整成标准正太分布,也叫高斯分布,也就是使得数据的均值维0,方差为1。
标准化的原因在于如果有些特征的方差过大,则会主导目标函数从而使参数估计器无法正确地去学习其他特征。
更详细的解释见:
4. OneHotEncoder处理的原因
由于特征可能是连续型的也可能是类别型的变量,这些类别特征无法直接进入模型。要想使得类别型的变量能最终被模型直接使用,可以使用one-of-k编码或者one-hot编码。OneHotEncoder它可以将有n种值的一个特征变成n个二元的特征。
更详细的解释见:
5. LabelEncoder处理的原因
将数据标签化,利于模型的建立
有不足或者不对的地方欢迎留言指正!!!
转载地址:https://mtyjkh.blog.csdn.net/article/details/82764848 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关于作者
