机器学习之KNN算法原理及Python实现方法详解
KNN算法是一种常用的机器学习算法,它可以用于分类和回归问题。在本攻略中,我们将介绍KNN算法原理和Python实现方法,并提供两个示例。
KNN算法原理
KNN算法的原理是基于样本之间距离来进行分类或回归。在分类问题中,KNN算法将新样本与训练集中的所有样本进行距离计算,并距离最近的K个样本作为邻居。然后,它将新样本分类为邻居中出现最多的类别。在回归问题中,KNN算法将新样本与训练集中的所有样本进行距离计算,并选择距离最近的K个本作为邻居。然后,它将新样本的输出值设置为邻居的平均值。
KNN算法Python实现方法
在Python中,我们可以使用scikit-learn库来实现KNN算法。下面是一个示例:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建KNN分类器
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 预测结果
y_pred = kn.predict(X_test)
# 计算准确率
accuracy = knn.score(X_test, y_test)
print('Accuracy:', accuracy)
在上面的代码中,我们使用load_iris()函数加载鸢尾花数据集,并使用train_split()函数将数据集划分为训练集和测试集。然后,我们使用KNeighborsClassifier()函数创建KNN分类器,并使用fit()函数训练模型。最后,我们使用predict()函数预测测试集的结果,并使用score()函数计算准确率。
示例一:使用KNN算法进行分类
from sklearn import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建KNN分类器
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 预测结果
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = knn(X_test, y_test)
('Accuracy:', accuracy)
在上面的代码中,我们使用KNN算法对鸢尾花数据集进行分类,并计算准确率。
示例二:使用KNN算法进行回归
from sklearn.neighbors import KRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 加载数据
boston = load_boston()
X = boston.data
y = boston.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建KNN回归器
knn = KNeighborsRegressor(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 预测结果
y_pred = knn.predict(X_test)
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print('MSE:', mse)
在上面的代码中,我们使用KNN算法对波士顿房价数据集进行回归,并计算均方误差。
总结
本攻略介绍了KNN算法的原理和Python实现方法,并提供了两个示例,分别使用KNN算法进行分类和回归。KNN算法是一种简单而有效的机器学习算法,它可以用于各种问题,包括分类和回归。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习之KNN算法原理及Python实现方法详解 - Python技术站