机器学习入门KNN近邻算法(一)

1 机器学习处理流程:

机器学习入门KNN近邻算法(一)

2 机器学习分类:

有监督学习

主要用于决策支持,它利用有标识的历史数据进行训练,以实现对新数据的表示的预测

1 分类

分类计数预测的数据对象是离散的。如短信是否为垃圾短信,用户是否喜欢电子产品

常用方法: K近邻、朴素贝叶斯、决策树、SVM

2 回归

回归技术预测的数据对象是连续值。例如温度变化或时间变化。包括一元回归和多元回归,线性回归和非线性回归

常用方法: 线性回归、逻辑回归、岭回归

无监督学习

主要用于知识发现,在历史数据中发现隐藏的模式或内在结构

1 聚类

聚类算法用于在数据中寻找隐藏的模式或分组。K-means

半监督学习

在半监督学习方式下,训练数据有部分被标识,部分没有被标识,这种模型首先需要学习数据的内在结构,以便合理的组织数据来进行预测。算法上,包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。

常见方法: 深度学习

3 K-近邻算法原理

KNN概述

简单来说,K-近邻算法采用测量不同特征值之间的距离方法进行分类(k-Nearest Neighbor,KNN)

优点: 精度高、对异常值不敏感、无数据输入假定

缺点: 时间复杂度高、空间复杂度高

1、当样本不平衡时,比如一个类的样本容量很大,其他类的样本容量很小,输入一个样本的时候,K个临近值中大多数都是大样本容量的那个类,这时可能就会导致分类错误。改进方法是对K临近点进行加权,也就是距离近的点的权值大,距离远的点权值小。

2、计算量较大,每个待分类的样本都要计算它到全部点的距离,根据距离排序才能求得K个临近点,改进方法是:先对已知样本点进行剪辑,事先去除对分类作用不大的样本。

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

1 标称型:标称型目标变量的结果只在有限目标集中取值,如真与假(标称型目标变量主要用于分类)

2 数值型:数值型目标变量则可以从无限的数值集合中取值,如0.100,42.001等 (数值型目标变量主要用于回归分析)

工作原理

1 样本训练集

2 电影类别KNN分析

3 欧几里得距离(欧式距离)

机器学习入门KNN近邻算法(一)

4 KNN计算过程流程图

机器学习入门KNN近邻算法(一)

入门案例 : 电影类型分析

电影名称 动作镜头 接吻镜头 电影类别 0 前任三 2 15 爱情 1 复仇者联盟 36 3 动作 2 杀破狼 24 1 动作 3 战狼 29 2 动作 4 泰坦尼克号 1 18 爱情 5 大话西游 29 3 爱情 6 星愿 2 20 爱情 7 西游记 25 2 动作 8 七月与安生 3 19 爱情 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt %matplotlib inline #从excel读取数据 films = pd.read_excel('films.xlsx',sheet_name=1) train = films[['动作镜头','接吻镜头']] target = films['电影类别'] # 创建机器学习模型 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() # 对knn模型进行训练 # 构建函数原型、构建损失函数、求损失函数最优解 knn.fit(train,target) ''' KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=1, n_neighbors=5, p=2, weights='uniform') ''' #输入两个案例 cat = np.array([[3,16],[20,4]]) # 使用predict函数对数据进行预测 knn.predict(cat) plt.scatter(train.values[:,0],train.values[:,1]) plt.scatter(cat[:,0],cat[:,1],color='red')

predict

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyjwd.html