基于最近邻数据进行分类

人工智能例子汇总:AI常见的算法和例子-CSDN博客

完整代码:

python 复制代码
import torch
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt

# 生成一个简单的数据集 (2个特征和2个分类)
# X为输入特征,y为标签
X = np.array([[1, 2], [2, 3], [3, 4], [5, 7], [6, 8], [7, 9], [8, 10], [3, 6], [4, 5], [6, 4]])
y = np.array([0, 0, 0, 1, 1, 1, 1, 0, 0, 1])

# 数据转换为 PyTorch 张量
X_tensor = torch.tensor(X, dtype=torch.float32)
y_tensor = torch.tensor(y, dtype=torch.long)

# 打印数据
print("Features:")
print(X_tensor)
print("Labels:")
print(y_tensor)

# 使用 sklearn KNN 分类器,调整邻居数量为 5
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X, y)

# 预测
y_pred = knn.predict(X)

# 计算准确率
accuracy = accuracy_score(y, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")

# 可视化数据
plt.figure(figsize=(6, 4))
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='bwr', marker='o', edgecolor='k', s=100)
plt.title("KNN Classification Example")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.show()

# 测试:给定新的输入数据进行预测
test_data = np.array([[5, 6], [2, 3]])
test_prediction = knn.predict(test_data)

print(f"Predictions for test data {test_data} are {test_prediction}")
  • 生成数据 :创建了一个具有 2 个特征和 2 个类别标签的数据集。X 是输入特征,y 是标签。
  • 转换为 PyTorch 张量:虽然这里我们不需要在 KNN 算法中使用 PyTorch,但我们将数据转换为 PyTorch 张量,显示如何与 PyTorch 数据结构进行交互。
  • KNN 分类器 :使用 sklearn.neighbors.KNeighborsClassifier 创建并训练 KNN 模型。我们将 n_neighbors 设置为 5,即选择 5 个最近邻。
  • 预测与准确率:使用训练好的模型对所有数据进行预测,并计算准确率。
  • 可视化 :使用 matplotlib 将数据点可视化,数据点的颜色根据标签进行区分。
  • 测试预测 :我们对新的测试数据点 [5, 6][2, 3] 进行预测。
  • 结果:
python 复制代码
Features:
tensor([[ 1.,  2.],
        [ 2.,  3.],
        [ 3.,  4.],
        [ 5.,  7.],
        [ 6.,  8.],
        [ 7.,  9.],
        [ 8., 10.],
        [ 3.,  6.],
        [ 4.,  5.],
        [ 6.,  4.]])
Labels:
tensor([0, 0, 0, 1, 1, 1, 1, 0, 0, 1])
Accuracy: 90.00%
Predictions for test data [[5 6]
 [2 3]] are [1 0]
相关推荐
jie*15 小时前
小杰机器学习(six)——概率论——1.均匀分布2.正态分布3.数学期望4.方差5.标准差6.多维随机变量及其分布
人工智能·机器学习·概率论
挽安学长15 小时前
通过 gaccode在国内使用ClaudeCode,Windows、Mac 用户配置指南!
人工智能
唐某人丶15 小时前
教你如何用 JS 实现 Agent 系统(3)—— 借鉴 Cursor 的设计模式实现深度搜索
前端·人工智能·aigc
weixin_4573402115 小时前
RTX5060 Ti显卡安装cuda版本PyTorch踩坑记录
人工智能·pytorch·python
Stanford_110615 小时前
关于物联网的基础知识(四)——国内有代表性的物联网平台都有哪些?
人工智能·物联网·微信·微信公众平台·twitter·微信开放平台
偶尔贪玩的骑士15 小时前
Machine Learning HW4 report: 语者识别 (Hongyi Lee)
人工智能·深度学习·机器学习·self-attention
柯南二号16 小时前
【AI】【Java后端】RAG 实战示例:SpringBoot + 向量检索 + LLM 问答系统
java·人工智能·spring boot
民乐团扒谱机16 小时前
【微实验】激光测径系列(六)MATLAB 实现 CCD 图像像素与实际距离标定
人工智能·计算机视觉
算家计算16 小时前
阿里最新开源Wan2.2-Animate-14B 本地部署教程:统一双模态框架,MoE架构赋能电影级角色动画与替换
人工智能·开源
阿里云大数据AI技术16 小时前
云栖2025 | 阿里云自研大数据平台ODPS 重磅升级:全面支持AI计算和服务
大数据·人工智能