目标设立:借助本门课程,同时结合sklearn框架学习机器学习,目的是熟悉机器学习的一般流程,熟悉机器学习框架库的使用,了解部分机器学习KNN算法的原理。
一、机器学习的一般流程
二、KNN算法
算法思想
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。通俗一点可以理解为,每一个样本数据都在分布在特征空间中的一个点,对于一个需要预测的样本,KNN算法根据计算距离距离该样本点最近的K的点,来对该样本进行预测结果。
KNN算法中的几个超参数
超参数是在算法运行前就需要赋值的参数,算法的不同超参数,给模型提供了一定了灵活性,可以结合不同场景来筛选出更适合这批数据的超参数值,提高模型预测的准确率。
那么怎么才能更快的寻找到好的超参数呢?
- 领域行业知识
- 算法经验数值
- 实验搜寻
选取K个点
在KNN算法中,有一个十分重要的超参数就是,选择距离待预测样本点最近应该有多少个点,比如我们可以遍历某一段范围的K值,然后判断结果中那个K值的得分最高,从而进行确定应该如何选取哪个K。
下面的代码是使用sklearn中封装好的KNN算法进行简单预测,在手动指定参数K的情况下进行预测:
import numpy as np
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# 获取数据
iris = datasets.load_iris()
X_data = iris.data
y_data = iris.target
# 数据预处理
X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, test_size = 0.2, random_state=600)