machine learning first day(数据预处理)

August 31, 2019 · 机器学习 · 548次阅读

机器学习所用教程是GitHub的一个开源项目机器学习100天中文版
这里还是坚持记录一下学习过程吧,machine leaning start!

Day 1.jpg

第一步 导入所需库

import numpy as np
import pandas as pd
  • 个人理解numpy就是用来扩充python数据结构的,比如方便构建矩阵等结构
  • pandas则是主要用来取数据集的,比如加载csv文件

第二步 导入数据集

CountryAgeSalaryPurchased
France4472000No
Germany40 No
Spain2748000Yes
France4879000Yes
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[ : , : -1].values
Y = dataset.iloc[ : , 3].values
  • iloc可以对所需的行列进行提取[行,列],冒号左边表示从第几行或列开始(包括这一行或者列),右边表示到那一行或者列结束(不包括那一行或列),负数表示从最后一列或行开始数,比如-1则为倒数第一行或列.
  • [:,:-1]表示取所有行,列取从第一列到倒数第一列之前的数据(不包括倒数第一列)

第三步 处理丢失数据

如上表第二行第三列丢失的数据

from sklearn.impute import SimpleImputer
imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer = imp_mean.fit(X[ : , 1:3])
X[ : , 1:3] = imputer.transform(X[ : , 1:3])
  • 原文中用的Imputer已经提示过时,这里换成了SimpleImputer
  • 主要是将每行中丢失的数据,通过这一列的平均值来补齐

第四步 解析分类数据

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_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)

第五步 拆分数据集为训练集合和测试集合

from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)

第六步 特征量化(归一化)

将连续变量归一化

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)

标签:机器学习

最后编辑于:2019/09/28 18:45

添加新评论

控制面板