算法笔记(13)数据预处理及Python代码实现

常用数据预处理工具:使用StandardScaler进行数据预处理、使用MinMaxScaler进行数据预处理、使用RobustScaler进行数据预处理、使用Normalizer进行数据预处理。

算法笔记(13)数据预处理及Python代码实现_第1张图片

使用StandardScaler进行数据预处理:将所有数据的特征值转换为均值为0,而方差为1的状态,可以确保数据的大小都是一致的,这样更有利于模型的训练。
使用MinMaxScaler进行数据预处理:所有数据的两个特征值都被转换到0到1之间,这样会让模型训练的速度更快且准确率也会提高。
使用RobustScaler进行数据预处理:不是用均值和方差来进行转换,而是使用中位数和四分位数,会直接把一些异常值踢出去。
使用Normalizer进行数据预处理:将所有样本的特征向量转化为欧几里得距离为1。

通过数据预处理提高模型准确率

python代码实现

mlp = MLPClassifier(hidden_layer_sizes=[100,100],max_iter=400,
                    random_state=62)
mlp.fit(X_train, y_train)
print('模型得分:{:.2f}'.format(mlp.score(X_test, y_test)))

模型得分:0.93

scaler = MinMaxScaler()
scaler.fit(X_train)
X_train_pp = scaler.transform(X_train)
X_test_pp = scaler.transform(X_test)
mlp.fit(X_train_pp, y_train)
print('数据预处理后的模型得分:{:.2f}'.format(mlp.score(X_test_pp,y_test)))

数据预处理后的模型得分:1.00
结果分析:经过预处理之后的数据集,大大提升了神经网络的准确率。
先用MinMaxScaler拟合了原始的训练数据集,再用它去转换原始的训练数据集和测试数据集。
切记不要用它先拟合原始的测试数据集,再去转换测试数据集,这样就失去了数据转换的意义。

使用MinMaxScaler进行数据预处理python代码实现

from sklearn.preprocessing import MinMaxScaler
X_2 = MinMaxScaler().fit_transform(X)
plt.scatter(X_2[:,0], X_2[:,1],c=y, cmap=plt.cm.cool)
plt.show()

输出结果如图所示

算法笔记(13)数据预处理及Python代码实现_第2张图片

 想要完整代码的朋友,可toutiao号搜索“编程研究坊”关注后s信我,回复“算法笔记13“免费获取

你可能感兴趣的:(python,人工智能,算法,python,算法,机器学习)