机器学习一百天中文版地址

https://github.com/MLEveryday/100-Days-Of-ML-Code

机器学习一百天英文版地址

https://github.com/Avik-Jain/100-Days-Of-ML-Code

本章是第一天内容的笔记,作记录学习之用

第一天的内容——数据预处理

第一步:导入需要的库 NumPy和Pandas

NumPy:包含数学计算函数
Pandas:用于导入和管理数据集

#导入库
import numpy as np
import pandas as pd

第二步是导入数据集

数据集的格式通常为**.csv**。csv是以文本形式保存表格数据,在电脑中可以用Excel软件打开。在代码中使用Pandas中的read_csv方法读取本地文件

#导入数据集
dataset = pd.read_csv('Data.csv')#读取csv文件
X = dataset.iloc[:,:-1].values #.iloc[行,列] 选取[-1,0]
Y = dataset.iloc[:,3].values #:表示全部行或者列,[a]表示第a行或者列
#Pandas 读取文件时候,注意文件的存储路径不能带有中文,否则读取可能出错。
#.iloc:根据标签的所在位置,从0开始计数,选取列
X

机器学习一百天 数据预处理

第三步是处理丢失的数据

一般情况下,我们得到的数据很少是完整的,为了不降低机器学习的性能,需要处理数据,一般使用整列的平均值或者中间值替换丢失的数据。使用sklearn.preprocessing 库中的Imputer
类完成

#处理丢失的数据
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN',strategy = 'mean',axis = 0)
imputer = imputer.fit(X[:,1:3])#用数据拟合fit x 的前两列
X[:,1:3] = imputer.transform(X[:,1:3]) #计算缺失数据
'''missing_values:缺失值,可以为整数或NaN(缺失值numpy.nan用字符串‘NaN’表示)
默认为NaN
strategy:替换策略,字符串,默认用均值‘mean’替换
①若为mean时,用特征列的均值替换
②若为median时,用特征列的中位数替换
③若为most_frequent时,用特征列的众数替换
axis:指定轴数,默认axis=0代表列,axis=1代表行'''
X

机器学习一百天 数据预处理

第四步是解析分类数据

分类数据指的是含有标签值而不是数字值的变量。取值范围通常是固定的。“yes”和“no”不能用于模型的数学计算,所以需要解析成为数字。使用sklearn.preprocessing 库中导入LabelRncoder类实现

# 解析分类数据
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
#LabelEncoder:把字符串类型的数据转化为整型.
#OneHotEncoder :特征用一个二进制数字来表示
labelencoder_X = LabelEncoder()
X[:,0] = labelencoder_X.fit_transform(X[:,0])
X

机器学习一百天 数据预处理

#创建虚拟变量
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
labelencoder_Y= LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)

第五步是拆分数据集

拆分为训练集合以及测试集合,训练集合是用来训练模型,测试集合是用来验证模型,二者比例一般为8:2。使用sklearn.crossvalidation中的train_test_split()方法

#拆分数据集为训练集合测试集合
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2
,random_state = 0)
#test_size:样本占比,如果是整数的话就是样本的数量 
#random_state:是随机数的种子。
X_train

机器学习一百天 数据预处理

第六步是特征缩放

大部分模型算法使用两点间的欧氏距离函数表示,单此特惠佐能在幅度、单位和范围姿态问题上变化很大。在距离计算中,高幅度的特征比低幅度特征权重更大。可用特征标准化或者Z值归一化解决。使用sklearn.preprocessing库中的StandardScalar

# 特征量化,缩放
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)#fit_transform()的作用就是先拟合数据,然后转化它将其转化为标准形式
X_test = sc_X.transform(X_test)#tranform()的作用是通过找中心和缩放等实现标准化
X_train

机器学习一百天 数据预处理

相关文章:

  • 2021-09-21
  • 2021-07-01
  • 2021-04-12
  • 2021-11-22
  • 2021-11-22
  • 2021-11-22
猜你喜欢
  • 2021-11-22
  • 2021-12-22
  • 2021-11-22
  • 2021-09-26
相关资源
相似解决方案