KNN
目录
概述
机器学习算法选择
监督学习与无监督学习:想要预测目标变量的值则采用监督学习,否则选择无监督学习。
监督学习中,若目标变量是离散的,则选择分类算法,若目标变量是连续的则选择回归算法。
无监督学习中,分析是否需要将数据划分为离散的组,如果这是唯一的需求,则使用聚类算法;若还要估计数据与每个分组的相似程度,则选用密度估计算法。
变量的值分离散型和连续型。
开发应用的步骤
- 收集数据:如网络爬虫
- 准备输入的数据:确保数据格式符合规范,融合算法和数据源,方便匹配操作
- 分析输入数据:分析处理后的数据是否存在异常值或空值等
- 训练算法:将数据输入算法,从中抽取信息,若是无监督算法则无训练
- 测试算法
python开发的环境需要
- NumPy Pandas
- SciPy
- Matplotlib
K-近邻算法(监督学习的一种分类算法)
K-近邻算法采用测量不同特征值之间的距离方法进行分类
优点: 精度高、对异常值不敏感、无数据输入假定
缺点: 计算复杂度高、控件复杂度高
适用数据范围: 数值型和标称型(数值型:可以在无限的数据中取,而且数值比较具体化,例如4.02,6.23这种值;标称型:一般在有限的数据中取,而且只存在‘是’和‘否’两种不同的结果)
工作原理: 存在一个数据集合,也称训练样本集,并且样本集中的每个数据都存在标签,即知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般只选取样本数据集中前k个最相似的数据,通常k是不大于20的整数。最后,选择k个最相似数据中出现此处追多的分类,作为新数据的分类。
算法原理:
- 计算已知类别数据集中点与当前点之间的距离
- 按照距离递增排序
- 选取与当前点距离最小的k个点
- 确定前k个点所在类别的出现频率
- 返回前k个点出现频率最高的类别作为当前点的预测分类