IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> KNN(k近邻算法) -> 正文阅读

[人工智能]KNN(k近邻算法)

一、思想

  • 物以类聚,人以群分。
  • 给定训练集,对于给定的测试集,计算它与训练集集中每个对象的距离。圈定距离最近的k个训练对象,作为测试对象的近邻。根据k个近邻的主要类别,确定测试对象的分类。

(一)k(划分的类数)的确定

  • k小:训练误差小,泛化误差大,对噪声敏感,模型复杂,容易发生过拟合
    过拟合:参数多,样本少,过度训练
  • k大:训练误差大,泛化误差小,模型简单,容易发生欠拟合
    欠拟合:参数少,训练不到位
  • try [3,20]

(二)距离的度量

  • 默认情况:欧氏距离
  • 文本分类:夹角余弦

(三)类别的判定

  • 简单投票法:少数服从多数,近邻中哪个类别的点最多就分为该类
  • 加权投票法:根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)

二、存在问题

1.样本不平衡

改善:加权投票法

2.计算量大,效率低,计算复杂度和空间复杂度双高

改善:
(1)样本剪辑,删除对分类作用不大的训练样本
(2)设置参数:algorithm=‘kd_tree’/‘ball_tree’

三、Python实现

import sklearn
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
from sklearn.metrics import accuracy_score

#构造训练集和测试集
x=truck_data[['speed', 'acceleration', 'throttle']]
y=truck_data['if_full']

# 确定k
k_error = []

for k in range(2,21):
    knn = KNeighborsClassifier(n_neighbors=k)
    #cv参数决定数据集划分比例,这里是按照5:1划分训练集和测试集
    scores = cross_val_score(knn, x, y, cv=6, scoring='accuracy')
    k_error.append(1 - scores.mean())

#画图,x轴为k值,y值为误差值
plt.plot(range(2,21), k_error)
plt.xlabel('Value of K for KNN')
plt.ylabel('Error')
plt.xticks(np.arange(0,21,1))  # 设置x轴刻度
plt.show()

在这里插入图片描述

acc_knn_list=[]
for i in range(100):
    x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.3)
    knn_2 = KNeighborsClassifier(n_neighbors=2)
    knn_2.fit(x_train,y_train)
    knn_2_y_test=knn_2.predict(x_test)
    acc_2=accuracy_score(y_test,knn_2_y_test)
    acc_knn_list.append(acc_2)
sns.distplot(acc_knn_list)

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:38:10  更:2021-07-29 11:40:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 13:58:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码