• day04-K-近邻算法


    
    # coding=utf-8
    from sklearn.datasets import load_iris
    from sklearn.preprocessing import StandardScaler,MinMaxScaler
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.model_selection import train_test_split
    
    def knc():
        # 水仙花数据
        # li.data 即为数据的特征值,是二维的
        # li.target 即为数据的目标值
        li = load_iris()
    
        # 准备数据
        x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size=0.25)
    
        # 标准化
        ss = StandardScaler()
        x_train = ss.fit_transform(x_train)
        # 需要用训练集的标准来标准化测试集
        x_test = ss.transform(x_test)
    
        print(x_train[:10])
    
        # 预测
        knn = KNeighborsClassifier(n_neighbors=4)
    
        knn.fit(x_train,y_train)
    
        print("预测的值为:",knn.predict(x_test))
        print("实际的值为:",y_test)
        print("预测的准确率为:",knn.score(x_test,y_test))
    
        return None
    
    if __name__ == '__main__':
        knc()
    
    
    

    结果

    
    [[-0.87970794  0.97328587 -1.29559474 -1.27424663]
     [-0.76085717  0.97328587 -1.2390009  -1.27424663]
     [ 0.78420285 -0.59356448  0.51540821  0.45968149]
     [ 1.85385979 -0.59356448  1.36431584  0.99319784]
     [ 1.25960594  0.07794281  0.68518973  0.45968149]
     [-1.71166333 -0.14589295 -1.35218859 -1.27424663]
     [ 0.54650131 -0.81740025  0.68518973  0.85981875]
     [ 1.0219044  -0.14589295  0.74178357  0.72643967]
     [-1.47396179  0.30177858 -1.29559474 -1.27424663]
     [-0.76085717 -0.81740025  0.11925131  0.32630241]]
    预测的值为: [1 2 1 0 2 2 1 2 0 0 1 0 1 1 2 0 2 2 2 1 0 1 0 2 1 1 2 2 0 0 0 1 1 2 0 2 2
     2]
    实际的值为: [1 2 2 0 2 2 1 2 0 0 1 0 1 2 2 0 2 2 1 1 0 1 0 2 1 1 2 2 0 0 0 1 1 2 0 2 1
     2]
    预测的准确率为: 0.8947368421052632
    
    

    K-近邻算法
    这个算法的思想很简单,使用类似两点之间距离计算的公式来计算训练集中所有的特征值与预测的数据的特征值,计算出其距离,然后选择距离最短的数据,即“邻居”
    正是由于这个思路,所以有异常点的话对预测的影响很大,所以需要对数据集进行标准化
    k的意思是几个邻居的意思,即几个与之距离最短的数据的目标值
    该算法适用于小数据场景,而且算法中的k需要自己去尝试

  • 相关阅读:
    Hibernate与JPA的区别是什么
    11 吐司 Toast 代码案例
    万众瞩目之下,ANGULAR 2终于正式发布啦!
    Sencha EXTJS6的 Eclipse 插件安装指南
    安卓6.0新特性在Fragment申请运行时权限
    NDK环境配置
    18 UI美化之level(等级显示显示)
    ABAP SY-SUBRC 使用过程中返回值的几种含义
    SAP中给当前指定的活动用户发系统信息的函数
    SAP中的Currency Converting Factor
  • 原文地址:https://www.cnblogs.com/wuren-best/p/14269222.html
Copyright © 2020-2023  润新知