美文网首页
算法笔记(13)数据预处理及Python代码实现

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

作者: 编程研究坊 | 来源:发表于2022-05-18 20:44 被阅读0次

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

    数据预处理
    使用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()
    

    输出结果如图所示


    经过MinMaxScaler处理的数据

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

    相关文章

      网友评论

          本文标题:算法笔记(13)数据预处理及Python代码实现

          本文链接:https://www.haomeiwen.com/subject/mvbaurtx.html