KNN算法模型

本文介绍了如何使用scikit-learn库中的KNeighborsClassifier构建KNN模型,包括数据生成、模型训练、以及模型在给定点上的预测和评估性能。

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

第1关:利用sklearn构建KNN模型

from sklearn.neighbors import KNeighborsClassifier

from sklearn.datasets import make_blobs


 

da = make_blobs(n_samples=500, centers=5, random_state=8)

x, y = da

# 1.建立KNN算法模型

# 2.对数据进行拟合,并赋值给clf

#########  Begin #########

# 1.建立KNN算法模型

clf = KNeighborsClassifier(n_neighbors=5)

# 2.对数据进行拟合,并赋值给clf

clf.fit(x, y)


 

#########  end  ##########


 

print("模型评估:{:.2f}".format(clf.score(x, y)))

print(clf.predict([[1, 1]]))

print(clf.predict([[5, 5]]))

print(clf.predict([[10, 10]]))


 

### KNN算法模型框架 #### 模型构建概述 K最近邻(kNN, k-Nearest Neighbor)是一种基于实例的学习方法,在训练阶段几乎不做任何事情,仅存储样本数据;而在预测新样本时,通过计算与已有样本的距离找到距离最近的k个邻居,并根据这些邻居的信息来进行分类或回归。 #### 使用`caret`包构建KNN模型 为了简化建模过程并提高灵活性,R语言提供了`caret`包用于统一接口下的多种机器学习算法调用。利用此工具箱内的`train()`函数能够便捷地创建KNN模型[^1]: ```r library(caret) # 设置控制参数,采用重复交叉验证策略 control <- trainControl(method="repeatedcv", number=10, repeats=3) # 构建KNN模型,默认使用欧氏距离度量 model_knn <- train(Class ~ ., data=train_data, method='knn', trControl=control, preProcess=c("center","scale"), tuneLength=10) ``` 上述代码片段展示了如何借助`caret::train()`完成带有预处理步骤(中心化和标准化)、指定评估方案以及自动调整超参的最佳实践。 #### 超参数调节 在实际应用中,选择合适的\(k\)值至关重要。较小的\(k\)可能导致过拟合现象严重,而较大的\(k\)则可能引入偏差。因此,通常会在一定范围内尝试不同的\(k\)取值组合,进而选取最优解。此外,还可以考虑不同类型的权重分配机制来增强模型表现力。 #### 预测流程说明 当接收到新的观测对象后,需先执行相同的数据变换操作以保持一致性,随后依据选定的距离公式定位到最相似的一组已知案例作为参照系,最后统计其标签分布情况从而得出最终判定结论。 ```r predictions <- predict(model_knn, newdata=test_data) confusionMatrix(predictions, test_data$Class) ``` 这段脚本实现了测试集中各条记录所属类别的推测工作,并输出混淆矩阵帮助理解性能指标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值