k近邻算法的Python实现
时间: 2024-09-10 11:11:59 浏览: 41
k近邻算法(K-Nearest Neighbors,简称KNN)是一种基于实例的学习方法,它通过查找训练集中最相似的数据点来进行预测。在Python中,可以使用sklearn库来方便地实现KNN算法。以下是一个简单的步骤:
```python
from sklearn.neighbors import KNeighborsClassifier
# 导入数据处理模块
from sklearn.datasets import load_iris
import numpy as np
# 加载示例数据集(例如鸢尾花数据集)
iris = load_iris()
X = iris.data # 特征
y = iris.target # 标签
# 创建KNN分类器
knn = KNeighborsClassifier(n_neighbors=3) # n_neighbors指k值,默认5,这里设置成3
# 训练模型
knn.fit(X, y)
# 预测新数据点
new_data = [[4.7, 3.1, 1.5, 0.2]] # 新样本特征
prediction = knn.predict(new_data)
print("预测结果:", prediction)
```
在这个例子中,我们首先加载数据,创建`KNeighborsClassifier`对象并设置邻居的数量(这里是3),然后使用`fit()`方法对模型进行训练,最后通过`predict()`方法对新的数据点进行分类。
相关问题
k近邻算法Python实现
k近邻算法(k-Nearest Neighbor,k-NN)是一种基本的分类和回归方法,它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
以下是一个简单的k近邻算法Python实现:
```python
import numpy as np
from collections import Counter
def knn(X_train, y_train, x, k):
distances = [np.sqrt(np.sum((x - x_train) ** 2)) for x_train in X_train]
nearest = np.argsort(distances)
top_k = [y_train[i] for i in nearest[:k]]
votes = Counter(top_k)
return votes.most_common(1)
# 示例
X_train = np.array([[1, 2], [1, 4], [2, 1], [4, 2], [4, 4]])
y_train = ['A', 'A', 'B', 'B', 'B']
x = np.array([3, 2.5])
print(knn(X_train, y_train, x, k=3))
```
在上述代码中,`X_train`是训练集数据,`y_train`是训练集标签,`x`是待分类的数据点,`k`表示选取的最近邻个数。
函数首先计算待分类数据点与训练集中所有数据点的距离,并将距离从小到大排序。然后选择距离最小的前k个数据点,并统计它们所属的类别。最后返回出现次数最多的类别作为预测结果。
k近邻算法python
k近邻算法是一种常见的机器学习算法,用于分类和回归。在Python中,我们可以使用scikit-learn库来实现k近邻算法。
下面是一个简单的例子:
```python
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.3)
# 创建分类器
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 预测测试集
y_pred = knn.predict(X_test)
# 输出准确率
print("Accuracy:", knn.score(X_test, y_test))
```
在这个例子中,我们使用了鸢尾花数据集来训练和测试k近邻算法。首先,我们加载数据集并将其分为训练集和测试集。然后,我们创建一个k近邻分类器,并使用训练数据对其进行拟合。最后,我们用测试数据进行预测,并输出模型的准确率。
阅读全文