step 1:导入库
NumPy:包含数学计算函数
Pandas:用于导入和管理数据集
step 2:导入数据集
数据集通常都是 .csv格式。CSV文件以文本形式保存表格数据。文件的每一行是一条数据记录。
用 Pandas 的 read_csv 读取本地csv文件为一个数据帧。
然后从数据帧中制作自变量和因变量的矩阵和向量。
dataset = pd.read_csv('Data.csv') # 读取csv文件,也可以在单引号里直接放入数据所在路径
X = dataset.iloc[ : , :-1 ].values # iloc除了最后一列,提取其他列数据
Y = dataset.iloc[ : , 3].values # 取第四列(索引为3)的所有行,即最后一列的数据 purchased
# DataFrame.values 取值,查看数据框的具体数据值,不包括索引
step 3:处理丢失数据
可以用整列的平均值或中间值替换丢失的数据。
用 sklearn.preprocessing库中的 Imputer 类完成这项任务。
(代码注释需要补充)
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0) #axis=0(1),表示对每一列(行)进行这个操作;
imputer = imputer.fit(X[ : , 1:3]) #对X中的1、2列处理
X[ : , 1:3] = imputer.transform(X[ : , 1:3])
step 4:解析分类数据
分类数据指的是含有标签值而不是数字值的变量。取值范围通常是固定的。需要把标签解析成数字。
用 sklearn.preprocessing库导入LaberEncoder类 实现。
step 5:拆分数据集为测试集和训练集
把数据集拆分为两部分,训练集:测试集=8:2 .
用 sklearn.cro-ssvalidation库中的train_test_split()方法 。
step 6:特征缩放
大部分模型算法使用两点间的欧氏距离表示,但此特征在幅度、单位和范围姿态问题上变化很大。
在距离计算中,高幅度的特征比低幅度特征权重更大。可用特征标准化或Z值归一化解决。
用 sklearn.preprocessing库的StandardScalar类 解决