• 机器学习之 KNN近邻算法(一)入门


    一、理论

    是有监督学习的分类算法

    当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。

    理论相关链接:https://www.cnblogs.com/listenfwind/p/10311496.html

    二、流程

    1.数据预处理:目标label转换成数字

    2.数据集进行二八分,测试KNN模型计算的准确性

    三、代码

    准备数据:

    moviename,kiss,action,type
    我在时间尽头等你,20,0,爱情
    倩女幽魂,10,5,爱情
    龙岭迷窟,2,30,动作
    叶问,0,40,动作
    极限先锋,5,20,动作
    东海人鱼传,15,5,爱情
    上海王,10,2,爱情
    海王,2,20,动作
    喋血战士,10,30,动作
    亲吻亭,40,2,爱情

    代码:设定某个neighbor的值,求出一个预测模型,并求出该model的准确率

    #-*-coding:gb2312-*-
    import numpy as np
    import pandas as pd
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.preprocessing import LabelEncoder
    
    if __name__ == '__main__':
        # 读取csv中的电影信息数据
        df = pd.read_csv("D:/PyProjects/demo/com/njbdqn/NearestNeighbors/movie.csv",encoding='gbk')
       # print(df)
        # 将目标字符串列转为数字(为了方便后面求预测准确率)
        label = LabelEncoder().fit_transform(df['type'])
        print(label)
        # 电影分 3 7组
        train,test = df.iloc[:7,1:3],df.iloc[7:,1:3] # 抓取1 2列(kiss和action)作为特征(使用二维作为特征!)
        train_target,test_real_target = label[:7],label[7:] # label是一维数组,取前7个和后3个
        # 开启 KNN模型进行模型训练,设n等于5
        knn = KNeighborsClassifier(n_neighbors=5)
        knn.fit(train,train_target)
        # 利用留下的2个电影进行测试
        pred = knn.predict(test)
        print(pred)         # 预测的结果
        print("-------")
        print(test_real_target) # 真实数据
        print("====准确率===") # 衡量预测的准确性
        print(1-abs(pred-test_real_target).sum()/len(pred))

    结果:

    [1 1 0 0 0 1 1 0 0 1]       #  真实label
    [1 0 1]          # 预测结果
    -------
    [0 0 1]                            # 真实数据
    ====准确率===
    0.6666666666666667

  • 相关阅读:
    T-sql for xml path使用
    解决 SQL Server2012附加出错的问题
    安装应用程序 报“ 997 重叠 I/O 操作在进行中”错解决办法
    使用QQ互联登录应用
    monogdb windows环境下 安装及使用简单示例
    idle-实现清屏
    colorscheme-如何vim颜色风格
    android-从官网下拉源码(ubuntu)
    hq-源码编译
    文件目录进入终端
  • 原文地址:https://www.cnblogs.com/sabertobih/p/13920905.html
Copyright © 2020-2023  润新知