机器学习实战kNN

本文介绍了k近邻算法KNN的实战步骤,包括数据收集、文本解析、特征归一化、加权处理、错误率测试等。通过归一化将特征值缩放到0-1范围,并探讨了加权特征值的重要性。通过反复测试找到最佳加权值,以降低错误率。最后,提供了测试函数的简单说明。
摘要由CSDN通过智能技术生成

1.首先需要 安装numpy,matplotlib包

可以使用pip -install 来安装

2.分析预测步骤

1>收集数据,可以参考 https://blog.csdn.net/sinat_29957455/article/details/79123394

    也可以在其他数据库中自行下载https://www.zhihu.com/question/63383992/answer/222718972

2>解析文本数据(特征数据和标签数据)

    K-邻近分类是通过特征值近似,来确定标签的一种算法

3>将所有特征数据归一

    通过单个特征数据中,temp_value=max_value-min_value,然后用每一个特征值/temp_value,

    将所有的特征值变为0~1之间的数.

4>加权特征值

    因为所有特征不可能是,完全相同地取影响最后的结果(标签).

5>测试当前加权特征值算法的错误率

6>反复(4.5)步可以得到一个在当前这个数据集中误差最小的加权值

7>投入使用


解析文本代码

def parse_file(filename):
    fr = open(filename)                             # 打开数据集文件
    array_lines = fr.readlines()                    # 读取所有文件,返回list
    # ['40920\t8.326976\t0.953952\t3\n', '14488\t7.153469\t1.673904\t2\n']
    lens = len(array_lines)                         # 得到行数
    feature_array = zeros((lens, 3))                # 得到一个lens*3的元素全为0ndarray
    labels = []                                     # 准备存放标签
    index = 0
    for line in array_lines:
        line = line.strip()
        # 1148 0.000000   0.332365   2
        # 10062    3.931299   0.487577   2 得到这样的数据
        list_line = line.split('\t')
        # ['14488', '7.153469', '1.673904', '2']
        # ['26052', '1.441871', '0.805124', '1']    得到这样的数据
        feature_array[index, :] = list_line[0:3]       # 将前面三列存入特征ndarray        labels.append(int(list_line[-1]))              # 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值