【机器学习个人笔记】part1——用sklearn实现数据预处理
- 1.导入数据处理标准库
- 2.导入数据集
- 3.处理缺省数据
- 4.处理分类数据,虚拟编码
- 5.划分训练集和测试集
- 6.特征缩放
- [完整代码](https://github.com/carrycarry5/ml-personal-notes)

1.导入数据处理标准库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
2.导入数据集
dataset = pd.read_csv('../Data.csv')
x1 = dataset.iloc[:, :-1] # dataframe格式
x = dataset.iloc[:, :-1].values # numpy格式 自变量应该是个矩阵
y = dataset.iloc[:,-1:].values # 因变量应该是个向量
原始数据集:x:![]()
【机器学习个人笔记】part1——用sklearn实现数据预处理1.导入数据处理标准库2.导入数据集3.处理缺省数据4.处理分类数据,虚拟编码5.划分训练集和测试集6.特征缩放完整代码 y:![]()
【机器学习个人笔记】part1——用sklearn实现数据预处理1.导入数据处理标准库2.导入数据集3.处理缺省数据4.处理分类数据,虚拟编码5.划分训练集和测试集6.特征缩放完整代码 ![]()
【机器学习个人笔记】part1——用sklearn实现数据预处理1.导入数据处理标准库2.导入数据集3.处理缺省数据4.处理分类数据,虚拟编码5.划分训练集和测试集6.特征缩放完整代码
3.处理缺省数据
遇到缺失数据时,我们首先想到的是要把这条记录删掉,但这条记录可能包含了一些重要的信息, 所以应该采取别的方法。例如,用整列的平均值代替缺失数据。
from sklearn.preprocessing import Imputer #该类专门用于处理缺失对象
imputer = Imputer(missing_values= 'NaN',strategy='mean',axis=0) #用均值来填补缺省值,axis=0代表对列操作
imputer.fit(x[:,1:3]) # 用x去拟合
x[:,1:3] = imputer.transform(x[:,1:3])
处理后的x:![]()
【机器学习个人笔记】part1——用sklearn实现数据预处理1.导入数据处理标准库2.导入数据集3.处理缺省数据4.处理分类数据,虚拟编码5.划分训练集和测试集6.特征缩放完整代码
Imputer类中的strategy的可选值共有:mean(均值),median(中位数),most_frequent(众数)
4.处理分类数据,虚拟编码
某些标签,比如国家,不能直观的看出其差异,将其转换为数字更好观察
但这些国家并没有数值上的差异,它们只是不一样,这种排序是没有意义的,如何解决?
——虚拟编码
# encoding categorical data # 处理分类数据
from sklearn.preprocessing import LabelEncoder,OneHotEncoder # 该类用于将label标准化
label_encoder_x = LabelEncoder() # 转换'国家'
x[:,0] = label_encoder_x.fit_transform(x[:,0]) # 拟合、转换
label_encoder_y = LabelEncoder() # 转换'是否购买'
y = label_encoder_y.fit_transform(y[:,0])
# 虚拟编码
onehotencoder = OneHotEncoder(categorical_features = [0])
x = onehotencoder.fit_transform(x).toarray()
处理后的x数据集:其中前3列是‘国家’虚拟编码后的结果![]()
【机器学习个人笔记】part1——用sklearn实现数据预处理1.导入数据处理标准库2.导入数据集3.处理缺省数据4.处理分类数据,虚拟编码5.划分训练集和测试集6.特征缩放完整代码
5.划分训练集和测试集
# sptting the dataset into the Training set and Test set 划分训练集和测试集
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=42)
以1:4的比例将数据集切割成测试集合训练集
6.特征缩放
何为特征缩放:https://blog.csdn.net/xlinsist/article/details/51212348
# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_x = StandardScaler()
x_train[:,-2:] = sc_x.fit_transform(x_train[:,-2:])
x_test[:,-2:] = sc_x.transform(x_test[:,-2:]) # 之前sc_x已经拟合过了,所以不用再拟合了
缩放后的数据![]()
【机器学习个人笔记】part1——用sklearn实现数据预处理1.导入数据处理标准库2.导入数据集3.处理缺省数据4.处理分类数据,虚拟编码5.划分训练集和测试集6.特征缩放完整代码
完整代码
- 数据预处理的几个基本步骤就介绍到这里,希望能够帮助到大家。