基于最近邻数据进行分类

人工智能例子汇总: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]
相关推荐
Ian在掘金2 分钟前
从零实现一个 PDF 智能问答系统
人工智能·langchain
飞Link12 分钟前
智能体时代的“紧箍咒”:深度解析 Agent 治理架构与 AI 杀伤开关
人工智能·架构
飞Link17 分钟前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
zhangfeng113330 分钟前
小龙虾 wordbuddy 安装浏览器控制器 agent-browser npm install -g agent-browse
前端·人工智能·npm·node.js
阿里云大数据AI技术30 分钟前
一条 SQL 生成广告:Hologres 如何实现素材生成到投放分析一体化
人工智能·sql
liudanzhengxi39 分钟前
GitSubmodule避坑全攻略
人工智能·新人首发
用户4252108006040 分钟前
Claude Code Linux 服务器部署与配置
人工智能
OJAC11143 分钟前
学过Python却不敢投AI岗,他最后拿下12K offer
人工智能
Bigger44 分钟前
因为看不懂小棉袄的画,我写了个 AI 程序帮我“翻译”她的世界
前端·人工智能·ai编程
CeshirenTester1 小时前
LangChain的工具调用 vs 原生Skill API:性能差在哪儿?
java·人工智能·langchain