机器学习(二):数据分类I

机器学习(二):数据分类I

任务如下

在这里插入图片描述
在这里插入图片描述

1.Sklearn中的make_circles方法生成训练样本,并随机生成测试样本,用KNN分类并可视化。

(1) make_circles与make_moons方法(可参考机器学习(一):低纬数据可视化
(2) KNN算法
def KNeighborsClassifier(n_neighbors = 5,weights=‘uniform’,algorithm = ‘’,
leaf_size = ‘30’,p = 2,metric = ‘minkowski’,
metric_params = None, n_jobs = None)
其中:
n_neighbors:这个值就是指 KNN 中的 “K”了。前面说到过,通过调整 K 值,算法会有不同的效果。
weights(权重):最普遍的 KNN 算法无论距离如何,权重都一样,但有时候我们想搞点特殊化,比如距离更近的点让它更加重要。这时候就需要 weight 这个参数了,这个参数有三个可选参数的值,决定了如何分配权重。参数选项如下:

  • ‘uniform’:不管远近权重都一样,就是最普通的 KNN 算法的形式。
  • ‘distance’:权重和距离成反比,距离预测目标越近具有越高的权重。
  • 自定义函数:自定义一个函数,根据输入的坐标值返回对应的权重,达到自定义权重的目的。

完整代码

from sklearn.datasets import make_circles
import matplotlib.pyplot as plt
import numpy as np
import random

def KNN(inX,x,y,k):
    d = x - inX
    dist = (d**2).sum(axis=1)**0.5 # 计算欧几里得距离
    distance = dist.argsort() # 小到大排序
    result = np.argmax(np<
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值