KNN算法原理介绍
KNN概述
knn的线性回归例子
房东房屋出租:租多少钱合适呢?
找到和自己房子位置、户型等条件类似的n套,它们多少租金,我也多少租金。
knn的逻辑回归例子:
有已知的4部电影:根据镜头类别多少来分类成动作片和爱情片。有一部未知电影,假设K = 3,那么就计算其与前3部电影的距离d1,d2,d3,当未知电影与爱情片的距离d1、d2小于和动作片的距离d3时,判定未知电影是爱情片。
算法核心和实质
核心:物以类聚,人以群分
实质:找邻居,投票决定
原理详述
如何找邻居,找几个,如何投票?
距离的定义
欧式距离:两点间直线距离
曼哈顿距离:直线作为斜边构成直角三角形,两条直角边就是曼哈顿距离
K值的选取
k值选取不同,会导致不同的结果
如何投票
哪个多就是哪个类别
优缺点
代码实战
KNN算法API参数详解
n_neighbors:K值,邻居的个数,默认为5【关键参数】,为了取得合适的k,一般会先遍历
score():调出knn方法效果的评分
经典数据集分类任务(单分类)
"""
鸢尾花
"""
import pandas as pd
'''
训练集
测试集
'''
train_data = pd.read_excel(r'/Users/dx/Desktop/Python数据分析与机器学习/7.KNN算法/鸢尾花案例/鸢尾花训练数据.xlsx')
test_data = pd.read_excel(r'/Users/dx/Desktop/Python数据分析与机器学习/7.KNN算法/鸢尾花案例/鸢尾花测试数据.xlsx')
'''
处理数据
数据分离
'''
train_data.columns
train_x = train_data[['萼片长(cm)', '萼片宽(cm)', '花瓣长(cm)', '花瓣宽(cm)']]
train_y = train_data[['类型_num']]
'''
数据标准化
Z-Score标准化
'''
from sklearn.preprocessing import scale
data = pd.DataFrame()
data['萼片长标准化'] = scale(train_x['萼片长(cm)'])
data['萼片宽标准化'] = scale(train_x['萼片宽(cm)'])
data