机器学习算法-k邻近值算法

原理:采用测量不同特征值之间的距离进行分类.

计算复杂度:n*n

优点:精度高,对异常值不敏感,五数据输入假定.简单.

缺点:计算复杂度高,空间复杂度高.

适用数据范围:数值型和标称型

标称型:一般在有限的数据中取,而且只存在‘是’和‘否’两种不同的结果(一般用于分类)

数值型:可以在无限的数据中取,而且数值比较具体化,例如4.02,6.23这种值(一般用于回归分析)

使用步骤:

假设数据处理已经做了.相关数据格式和内容都统一,没有异常.

1.准备数据:读取数据集,构建特征矩阵.

2.分析数据:使用Matplotlib 画二维或三维扩散图,观察训练数据的分类是否正常,同类数据是否聚类情况良好.
3.数据归一化:对训练数据集进行归一化处理.

4.测试算法,根据欧式距离原理,选择训练集中10%的数据作为测试数据,记录结果与实际值的差异,计算错误率.

5.使用算法,

 

 

相关概念:

数据归一化:消除计算欧式距离时,因各个指标中自然属性差异巨大,而导致的结果偏差.如下表中2组数据:

 玩游戏所占时间百分比每年飞行旅程数每周消费冰淇淋公升数样本分类
10200001.12
267320000.13

计算距离:

可以看出,若不对数据做归一化处理,结果将波动很大.,难以用来描述样本间的距离.所以我们需要对数据做归一化处理.即将任何数值都转化到0~1 或 -1~1之间.下列函数可将值归一化到0~1之间.

归一化前:

归一化后:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值