机器学习100天-K邻近法 [KNN算法思想 + KNeighborsClassifier]

K-NN算法计算过程:
在这里插入图片描述
上述过程(1)(2)(3)在寻找k个最近点时,采用了暴力搜索的思想。
也可以采取其他算法寻找处最近的k个点,如:BallTree, KDTree等。


计算流程事例:
(1)
在这里插入图片描述
(2)
在这里插入图片描述
(3)
在这里插入图片描述
(4)
在这里插入图片描述


sklearn.neighbors.KNeighborsClassifier 参数说明:
官方API:https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html

class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights=’uniform’, 
algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None,
n_jobs=None, **kwargs)[source]

n_neighbors: 选择最邻近点的数目k
weights: 邻近点的计算权重值,uniform代表各个点权重值相等
algorithm: 寻找最邻近点使用的算法
leaf_size: 传递给BallTree或kTree的叶子大小,这会影响构造和查询的速度,以及存储树所需的内存。
p: Minkowski度量的指数参数。p = 1 代表使用曼哈顿距离 (l1),p = 2 代表使用欧几里得距离(l2),
metric: 距离度量,点之间距离的计算方法。
metric_params: 额外的关键字度量函数。
n_jobs: 为邻近点搜索运行的并行作业数。


K-NN实现:
1:到入库
2:加载.csv文件数据
3:将数据分为 训练集和测试集
4:将数据标准化

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

dataset = pd.read_csv('Social_Network_Ads.csv')
X = dataset.iloc[:,[2,3]].values
Y = dataset.iloc[:,4].values

from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.25, random_state = 0)

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

5:定义 KNeighborsClassifier 模型,并载入训练数据进行训练

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors = 5, metric = 'minkowski', p = 2)
classifier.fit(X_train, Y_train)

6:测试 测试集

y_pred = classifier.predict(X_test)

7:使用混淆矩阵,观测预测效果(有关混淆矩阵的介绍可以看上一篇有关逻辑回归中的详细讲解)

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(Y_test,y_pred)

在这里插入图片描述


KNN:
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值