机器学习算法(三):K近邻(k-nearest neighbors)

1 KNN的介绍和应用

  1. KNN建立过程
    1 给定测试样本,计算它与训练集中的每一个样本的距离。
    2 找出距离近期的K个训练样本。作为测试样本的近邻。
    3 依据这K个近邻归属的类别来确定样本的类别。
  2. 类别的判定
    ①投票决定,少数服从多数。取类别最多的为测试样本类别。
    ②加权投票法,依据计算得出距离的远近,对近邻的投票进行加权,距离越近则权重越大,设定权重为距离平方的倒数。

2 学习目标

了解KNN怎么做分类问题了解KNN如何做回归了解KNN怎么做空值填充, 如何使用knn构建带有空值的pipeline
2.3 代码流程二维数据集–knn分类
Step1: 库函数导入
Step2: 数据导入
Step3: 模型训练&可视化
Step4: 原理简析
莺尾花数据集–kNN分类
Step1: 库函数导入
Step2: 数据导入&分析
Step3: 模型训练Step4: 模型预测&可视化
模拟数据集–kNN回归
Step1: 库函数导入
Step2: 数据导入&分析
Step3: 模型训练&可视化
马绞痛数据–kNN数据预处理+kNN分类pipeline
Step1: 库函数导入
Step2: 数据导入&分析
Step3: KNNImputer空值填充–使用和原理介绍
Step4: KNNImputer空值填充–欧式距离的计算
Step5: 基于pipeline模型预测&可视化
2.4 马绞痛数据–kNN数据预处理+kNN分类pipeline

下载需要用到的数据集
!wget https://tianchi-media.oss-cn-beijing.aliyuncs.com/DSW/3K/horse-colic.csv
import numpy as np
import pandas as pd
# kNN分类器
from sklearn.neighbors import KNeighborsClassifier
# kNN数据空值填充
from sklearn.impute import KNNImputer
# 计算带有空值的欧式距离
from sklearn.metrics.pairwise import nan_euclidean_distances
# 交叉验证
from sklearn.model_selection import cross_val_score
# KFlod的函数
from sklearn.model_selection import RepeatedStratifiedKFold
from sklearn.pipeline import Pipeline
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
imputer = KNNImputer(n_neighbors=2, metric='nan_euclidean')
imputer.fit_transform(X)

nan_euclidean_distances([[np.nan, 6, 5], [3, 4, 3]], [[3, 4, 3], [1, 2, np.nan], [8, 8, 7]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值