机器学习入门 & KNN
机器学习入门
原理
- 定义:机器指的就是电脑。
- 把“人工智能”问题转换成“计算”问题(电脑善于计算),深度学习有3个方向:“语音识别”,“图像识别”,“自然语义识别”
- 人工智能时代的真正到来,是量子计算机的商用化
- 我们目前学习的是“数据挖掘”
- 实际做的就是“导包” :from sklearn import svm
机器学习分类
1. 有监督学习(知道结果)
分类 (有限数据)
- 分类计数预测的数据对象是**离散的**。(预测分类)如短信是否为垃圾短信,用户是否喜欢电子产品
- K近邻、朴素贝叶斯、决策树、SVM
回归 (无限数据)
- 回归技术预测的数据对象是**连续值**。(预测趋势)例如温度变化或时间变化。包括一元回归和多元回归,线性回归和非线性回归
- 线性回归、逻辑回归、岭回归
2. 无监督学习
聚类
- 聚类算法用于在数据中寻找隐藏的模式或分组。
- K-means
3. 半监督学习(不用管)
深度学习
深度学习有3个方向:“语音识别”,“图像识别”,“自然语义识别”
KNN 基础知识
k-近邻算法原理
-
k-Nearest Neighbor,KNN
-
K-近邻算法采用测量不同特征值之间的距离方法进行分类
-
欧几里得距离(多维空间距离)公式:
-
判断一个点属于哪个分类,先分别计算出该点和所有已知点的距离,再进行排序,最后取出最小的K个来进行分类判断 (K默认为5个)
适用数据范围:
- 数值型: 只在有限目标集中取值,一般用作“分类”
- 标称型: 可以从无限的数值集合中取值,主要用作“回归”
优缺点&改进
- 优点:精度高、对异常值不敏感、无数据输入假定。
- 缺点:时间复杂度高、空间复杂度高。
- 改进:因为很消耗支援,一般不做商用,但可进行优化:
1. 解决计算量大的问题:限定范围半径进行剪辑(即取周围有效半径的点算距离)
2. 解决样本不平衡问题:加权重
KNN 用法之:分类
导包:KNeighborsClassifier
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.neighbors import KNeighborsClassifier
例子一:电影分类
数据
movie = pd.read_excel('../tests.xlsx', sheet_name=1)
movie
解决中文问题
plt.rcParams['font.sans-serif'] = ['SimHei']
以接吻镜头作为y轴, 武打镜头作为x轴画散点图, 0表示动作片, 1表示爱情片
plt.scatter(x=movie.武打镜头.values, y=movie.接吻镜头.values, c=[0,0,1,0,1,1,])
plt.ylabel('接吻镜头')
plt.xlabel('武打镜头')