K-近邻算法的 sklearn 实现

本文介绍了如何使用Python和sklearn库中的K-近邻分类算法对二手房样本进行分类,包括数据预处理、模型构建、参数优化以及预测性能的评估过程。作者详细展示了从数据导入到模型应用的完整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 实验目的与要求
    1. 掌握基于 K-近邻分类算法的编程方法
    2. 通过编程理解 K-近邻分类算法和该算法的基本步骤

  2. 实验器材
    1. 硬件:PC 机(参与实验的学生每人一台)
    2. 软件环境:Python3.7 + Pycharm

  3. 实验内容
    1. 使用 sklearn 库中的 neighbors 模块实现 K-近邻算法,并对二手房样本所
      属类别进行预测,程序流程为:
      (1) 导入 sklearn 库中的 K-近邻算法模块(KNeighborsClassifier),数据集分割模块(train_test_split)以及机器学习准确率评估模块(metrics)
      (2) 读取数据,并分割成特征属性集和类别集
      (3) 将数据集分割成训练集和测试集
      (4) 构建模型
      (5) 利用循环语句,k 值取 1-8 分别训练模型以确定最优 k 值
      (6) 使用最优 k 值训练模型并对新样本[7,27]和[2,4]的类别进行预测
      (7) 使用测试集对模型进行测试
      (8) 预测新样本类别
      (9) 绘制分类边界图

  4. 数据集下载
    本实验的数据集可以点击此处去下载

  5. 代码实现
# coding = utf-8
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
from sklearn import metrics  #引入机器学习的准确率评估模
from sklearn.model_selection import train_test_split  #数据分割模块
from sklearn.model_selection import cross_val_score  #交叉验证模块
# 导入数据
X1,y1=[],[]
fr = open('./knn.txt')
for line in fr.readlines():
    lineArr = line.strip().split()
    X1
k近邻算法种常用的无监督学习算法。它可以用来预测个新的数据点所属的类别或者数值。在sklearn中,可以使用KNeighborsClassifier和KNeighborsRegressor来实现k近邻算法KNeighborsClassifier适用于分类问题,KNeighborsRegressor适用于回归问题。它们的使用方法类似,主要区别在于输入的数据类型和输出的结果类型。 下面是个简单的示例,演示如何使用KNeighborsClassifier实现分类任务: ```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.2, random_state=42) # 创建模型对象 knn = KNeighborsClassifier(n_neighbors=3) # 拟合模型 knn.fit(X_train, y_train) # 预测结果 y_pred = knn.predict(X_test) # 计算准确率 accuracy = knn.score(X_test, y_test) print('Accuracy:', accuracy) ``` 在这个示例中,首先使用load_iris函数加载鸢尾花数据集,然后利用train_test_split函数划分数据集。然后,创建KNeighborsClassifier对象,并将n_neighbors参数设置为3。接下来,使用fit方法拟合模型,并使用predict方法预测结果。最后,使用score方法计算模型的准确率。 需要注意的是,k近邻算法的效果很大程度上取决于k值的选择。通常,k的值越大,模型越简单,但是容易欠拟合;k的值越小,模型越复杂,但是容易过拟合。因此,需要通过交叉验证等方法来选择最优的k值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值