模仿scikit-learn封装自己的knn算法
一、本文内容简介
本文详细介绍了scikit-learn库中机器学习算法的封装过程,特别是k近邻(knn)算法的实现与应用。视频从knn算法的基本原理出发,演示了如何将算法整理成函数,并通过断言确保输入数据的合法性。接着讲解了如何使用scikit-learn中的knn分类器进行预测,并说明了机器学习流程,包括数据训练和预测过程。此外,还讨论了如何自定义封装knn算法类,并进行了测试。视频强调了scikit-learn在机器学习算法封装上的统一性,并提示了在使用预测时需注意数据格式的问题。整体上,视频深入浅出地介绍了机器学习算法封装与调用的关键步骤和注意事项。
二、重新认识机器学习
- 机器学习流程包括训练数据集的准备、模型的训练、以及输入样例的预测。
- 训练数据集包括特征矩阵X_train和标签向量y_train。
- 模型训练过程通常称为fit,输入样例的预测过程称为predict。
三、重新认识KNN算法
- knn算法的基本原理是通过计算待预测样本与训练集中样本的距离,找到距离最近的k个样本,并统计这k个样本中最常见的类别作为预测结果。
- 算法过程包括断言验证输入数据的合法性,如k的值范围、训练数据集的特征数量等。
- 函数实现包括参数k、训练数据集X_train和y_train,以及待预测特征向量x。
- knn算法是一种特殊的机器学习算法,可以认为是没有模型的算法。
- 训练数据集本身就是knn算法的模型。
- knn算法的fit过程相对简单,主要是拷贝训练数据集。
- scikit-learn中的knn算法
- scikit-learn是一个流行的机器学习库,提供了丰富的算法实现。
- knn算法在scikit-learn中通过kneighborsclassifier类进行封装。
- 创建kneighborsclassifier实例并传入n_neighbors参数(即k的值)进行训练和预测。
四、scikit-learn调用knn算法演示
-
准备好训练数据集和预测向量
import numpy as np import matplotlib.pyplot as plt # 原始数据集X raw_data_X = [[3.393533211, 2.331273381], [3.110073483, 1.781539638], [1.343808831, 3.368360954], [3.582294042, 4.679179110], [2.280362439, 2.866990263], [7.423436942, 4.696522875], [5.745051997, 3.53398803], [