Day_1
步骤一 —— 导入必需库
在进行数据分析,需要两个必须常用库 —— pandas 、 Numpy
import numpy as np
import pandas as pd
步骤二 —— 导入数据集
数据集一般为.csv
格式,且通常为表格形式。每一行都有对应的数据记录
我们使用pandas
中的read_csv
的方式来读取数据集的内容,然后可以在Dataframe中分离矩阵和相关和不相关的向量
dataset = pd.read_csv(filepath_or_buffer=" ")
X = dataset.iloc[ : , : -1].values
Y = dataset.iloc[ : , 3].values
步骤三 —— 缺失值处理
关于缺失值(missing value)的处理,在sklearn
的preprocessing
包中包含了对数据集中缺失值的处理,主要是应用Imputer
类进行处理
进行处理的数据集中包含缺失值一般步骤如下:
- 使用字符串'nan'来代替数据集中的缺失值;
- 将该数据集转换为浮点型便可以得到包含np.nan的数据集;
- 使用sklearn.preprocessing.Imputer类来处理使用np.nan对缺失值进行编码过的
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values= "NaN", strategy= "mean", axis= 0)
imputer = imputer.fit(X[ : , 1: 3])
X[ : , 1: 3] = imputer.transform(X[ : , 1: 3])
步骤四 —— 分类数据编码
分类数据一般包含标签分类值,而不是数据值。可能的变量通常限制在固定数据集中。单纯的变量值不能在数学模型等式中使用,所以我们需要对分类数据编码成数字。
作法: 从sklearn.preprocessing
中导入LabelEncoder
类
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
再创建一个虚拟变量 (变量dummy化)
dummy variable是用0或1表示某个类别是否出现
onehotencoder = Onehotencoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
步骤五 —— 将数据集分成 测试集 和 训练集
将数据集分为两个部分,一个训练集,另一个用来测试所建立的模型的表现。
通常分配数据比例为 80/20 。
接下来采用从sklearn.model_selection
库中导入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)
注意:原来的cross_validation模块被弃用了,改为支持model_selection这个模块
步骤六 —— 特征缩放 (Feature scaling)
feature scaling(特征缩放)的思想就是将所选特征的value都缩放到一个大致相似的范围
通常来说,大部分机器学习算法都采用欧氏距离来计算两地的距离。特征在不同的量级、单位、排列上的极度不同会产生问题。高量级的数据的欧式距离的计算量会很大。
为使得特征标准化或Z-score统一化,需要导入 sklearn.preprocessing
中的StandardScalar
代码如下:
from sklearn.preprocessing import StandardScalar
sc_X = StandardScalar()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)
第一天的学习结束啦,开心
本文作者: Keithxodoy
文章为作者一字一句敲出来,整理实在不容易,希望各位转载写明出处
须知:未经允许,不得转载