封装代码如下
%run my_knn/my_knn.py
在封装之前,我们需要在同级目录下准备一个my_knn文件夹以及在文件夹下准备一个my_knn.py文件
在调用之前需要先实例化,自定义的类名如下Knn
knn = Knn() # 实例化
knn.fit(X_train,y_train)
knn.predict(np.array(([4,2],[2,5],[9,6]))) # 注意括号
运行结果如下
当然如上节所说,咱自己实现的还是过于简单,那么真正的Knn算法又是什么样呢?
scikit-learn(sklearn)是一个开源的Python机器学习库,建立在NumPy、SciPy和matplotlib等科学计算库之上。它提供了大量的机器学习算法实现,包括分类、回归、聚类、降维等。sklearn还包括用于模型评估、数据预处理和特征选择的工具,以及用于模型训练和预测的API接口。
pip install -U scikit-learn
使用sklearn进行机器学习任务通常包括以下步骤:
首先需要导入必要的库
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
之后实例化
knn_clf = KNeighborsClassifier()
最后在给定的数据集上进行预测即可
raw_data_X = [[3.3935, 2.3312],
[3.1101, 1.7815],
[1.3438, 3.3684],
[3.5823, 4.6792],
[2.2804, 2.8670],
[7.4234, 4.6965],
[5.7451, 3.5340],
[9.1722, 2.5111],
[7.7928, 3.4241],
[7.9398, 0.7916]]
raw_data_y =[0, 0, 0, 0, 0, 1, 1, 1, 1, 1] # 0是良性,1是恶性
X_train = np.array(raw_data_X)
y_train = np.array(raw_data_y)
knn_clf.fit(X_train,y_train)
x = np.array([8.0936, 3.3657]).reshape(1,-1)
knn_clf.predict(x)
运行结果如下
在算法选择上,分类问题和回归问题通常使用不同的机器学习算法。常用的分类算法包括K最近邻(KNN)、决策树、支持向量机(SVM)、朴素贝叶斯等,而常用的回归算法包括线性回归、岭回归、随机森林、梯度提升等。
总之,KNN算法是一个简单而有效的机器学习算法,适用于许多分类和回归问题。通过选择适当的参数和数据预处理技术,可以提高算法的性能和准确性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。