机器学习_7、KNN

数据采用:电离层数据

KNN完整的代码+电离层数据资源-CSDN文库

代码

import os
import csv
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
from matplotlib import pyplot as plt
from collections import defaultdict


data_filename = "电离层数据\\ionosphere.data"
X = np.zeros((351, 34), dtype='float')
y = np.zeros((351,), dtype='bool')
with open(data_filename, 'r') as input_file:
    reader = csv.reader(input_file)
    # print(reader)  # csv.reader类型
    for i, row in enumerate(reader):
        data = [float(datum) for datum in row[:-1]]
        # Set the appropriate row in our dataset
        X[i] = data
        # 将“g”记为1,将“b”记为0。
        y[i] = row[-1] == 'g'


# 划分训练集、测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=14)
# 即创建估计器(K近邻分类器实例) 默认选择5个近邻作为分类依据
estimator = KNeighborsClassifier()
# 进行训练,
estimator.fit(X_train, y_train)
# 评估在测试集上的表现
y_predicted = estimator.predict(X_test)
# 计算准确率
accuracy = np.mean(y_test == y_predicted) * 100
print("The accuracy is {0:.1f}%".format(accuracy))
# 进行交叉检验,计算平均准确率
scores = cross_val_score(estimator, X, y, scoring='accuracy')
average_accuracy = np.mean(scores) * 100
print("The average accuracy is {0:.1f}%".format(average_accuracy))




#由于KNN算法对于近邻K的选择依赖度较大,因此需要用实验法确定K值
#在1到20之间确定K值,记录不同K值下的准确率
avg_scores = []
all_scores = []
parameter_values = list(range(1, 21))  # Including 20
for n_neighbors in parameter_values:
    estimator = KNeighborsClassifier(n_neighbors=n_neighbors)
    scores = cross_val_score(estimator, X, y, scoring='accuracy')
    avg_scores.append(np.mean(scores))
    all_scores.append(scores)

# 绘制n_neighbors的不同取值与分类正确率之间的关系
plt.figure(figsize=(20, 10))
plt.plot(parameter_values, avg_scores, '-o', linewidth=5, markersize=24)
plt.show()

#交叉检验
all_scores = defaultdict(list)
parameter_values = list(range(1, 21))  # Including 20
for n_neighbors in parameter_values:
    estimator = KNeighborsClassifier(n_neighbors=n_neighbors)
    scores = cross_val_score(estimator, X, y, scoring='accuracy', cv=10)
    all_scores[n_neighbors].append(scores)
for parameter in parameter_values:
    scores = all_scores[parameter]
    n_scores = len(scores)
    plt.plot([parameter] * n_scores, scores, '-o')
plt.plot(parameter_values, avg_scores, '-o')
plt.show()


#由图可知K取2的情况下准确率最高,因此确定K值为2
#以k值为2重新训练最近邻分类器,并输出结果
Estimator = KNeighborsClassifier(n_neighbors=2)
Estimator.fit(X_train, y_train)
Y_predicted = Estimator.predict(X_test)
accuracy = np.mean(y_test == Y_predicted) * 100
pre_result = np.zeros_like(Y_predicted, dtype=str)
pre_result[Y_predicted == 1] = 'g'
pre_result[Y_predicted == 0] = 'b'
print(pre_result)
print("The accuracy is {0:.1f}%".format(accuracy))


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/312284.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络-2019期末考试解析

【前言】 从内容上看比较像计算机网络课程了,先做了。 一.填空选择题(共 20 分,每空 1 分) 1 、双绞线由两根相互绝缘的、绞合成均匀的螺纹状的导线组成,下列关于双绞线的叙述,不正确的是___ __…

7 - MySQL主从同步|主从同步模式

MySQL主从同步|主从同步模式 MySQL主从同步主从同步介绍主从同步工作过程主从同步结构模式配置主从同步一主一从同步结构一主多从同步结构主从从同步结构主主同步结构 主从同步模式主从同步结构模式复制模式 MySQL主从同步 主从同步介绍 存储数据的服务结构 主服务…

机器人持续学习基准LIBERO系列4——robosuite最基本demo

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新 1.robosuite的相关资料 是基于MuJoCo的机器人学习方针环境,提供一套基准环境…

【PaperReading】2. MM-VID

Category Content 论文题目 MM-VID: Advancing Video Understanding with GPT-4V(ision) 作者 Kevin Lin, Faisal Ahmed, Linjie Li, Chung-Ching Lin, Ehsan Azarnasab, Zhengyuan Yang, Jianfeng Wang, Lin Liang, Zicheng Liu, Yumao Lu, Ce Liu, Lijuan Wang (Microso…

MySQL 图书管理系统

1.需求分析 1.1项目需求分析简介 1.1.1信息需求分析 (1) 图书信息:包括书籍编号,书籍名称,出版社,作者,库存量,出版日期,价格,库存,剩余量,类别等&#xf…

正面PK智驾,华为与博世「硬扛」

12月20日,随着奇瑞星纪元ES的亮相上市,华为与博世,分别作为新旧时代的供应商角色,首次在高阶智驾赛道进行正面PK。 11月28日,奇瑞和华为合作的首款车型智界S7上市,作为星纪元ES的兄弟车型,搭载华…

Geotools-PG空间库(Crud,属性查询,空间查询)

建立连接 经过测试,这套连接逻辑除了支持纯PG以外,也支持人大金仓,凡是套壳PG的都可以尝试一下。我这里的测试环境是Geosence创建的pg SDE,数据库选用的是人大金仓。 /*** 获取数据库连接资源** param connectConfig* return* {…

DDMS修改默认端口8700

当前操作系统为 Mac,编辑器 Intellij IDE 准备工作:在IDE中的终端下,输入monitor指令 > 回车,打开DDMS 1、第一步, 2、第二步:修改静态端口 3、第三步 4、第四步:修复配置端口 5、第五步 重…

t2vec code

文章目录 执行过程preprocess.jl 解释h5 文件结构 执行过程 (base) zzqserver1:~/project/t2vec/preprocessing$ julia porto2h5.jl Processing 1710660 trips… 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 15…

读写锁(arm)

参考文章读写锁 - ARM汇编同步机制实例(四)_汇编 prefetchw-CSDN博客 读写锁允许多个执行流并发访问临界区。但是写访问是独占的。适用于读多写少的场景 另外好像有些还区分了读优先和写优先 读写锁定义 typedef struct {arch_rwlock_t raw_lock; #if…

Android Firebase (FCM)推送接入

官方文档: 向后台应用发送测试消息 | Firebase Cloud Messaging 1、根级(项目级)Gradlegradle的dependencies中添加: dependencies {...// Add the dependency for the Google services Gradle pluginclasspath com.google.gm…

使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速

Open AI 推出的 Whisper 是一个通用语音转录模型,在各种基准和音频条件下都取得了非常棒的结果。最新的 large-v3 模型登顶了 OpenASR 排行榜,被评为最佳的开源英语语音转录模型。该模型在 Common Voice 15 数据集的 58 种语言中也展现出了强大的多语言性…

CentOS安装k8s单机/集群及一些命令

目录 前言 1. 安装docker 2. 安装要求 3.准备网络(如果只装单机版可跳过此部) 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化,只在master执行,子节点不要执行 5.3.1 一些…

ActiveMQ任意文件写入漏洞(CVE-2016-3088)

简述:ActiveMQ的fileserver支持写入文件(但是不支持解析jsp),同时也支持移动文件。所以我们只需要先上传到服务器,然后再移动到可以解析的地方即可造成任意文件写入漏洞。我们可以利用这个漏洞来上传webshell或者上传定时任务文件。 漏洞复现 启动环境 …

回归预测 | Matlab基于SO-BiLSTM蛇群算法优化双向长短期记忆神经网络的数据多输入单输出回归预测

回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-LSTM蛇群算法优化长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-BiLSTM蛇群算法优…

记录汇川:H5U与Fctory IO测试7

主程序: 子程序: IO映射 子程序: 辅助出料程序 子程序: 辅助上料 子程序: 自动程序 FB块创建: H5U模块添加: Fctory IO配置: HMI配置 实际动作如下: Fctory IO测试7

JDBC

1 连接JDBC jdbc是连接java和数据库的桥梁,对于不同的数据库,如果我们希望用java连接,我们需要下载不同的驱动。这里我们使用mysql数据库,下载驱动。 MySQL :: Download MySQL Connector/J (Archived Versions) (版本…

一卡通水控电控开发踩过的坑

最近在做一个项目,是对接一卡通设备的。我一开始只拿到设备和3个文档开局。不知道从哪下手。一步一步踩坑过来。踩了很多没有必要的坑,写出来给有用的人吧。 读卡器怎么用? 有个读卡器,一开始什么软件也不提供。我都不知道是干嘛…

深信服态势感知一体机SIP-1000 Y2100 3.0.1Y升级3.0.3Y步骤

当前版本:3.0.1Y 升级后版本:3.0.3Y PS:3.0.1Y不能直升3.0.3Y,需要先通过升级工具升级到3.0.2Y,再安装前置补丁从3.0.2Y升级到3.0.3Y;每一次升级时间为20-30分钟,设备升级会重启,需提…

Scrapy框架自学

配置国内镜像源 # pip设置配置 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set trusted-host pypi.tuna.tsinghua.edu.cn创建虚拟环境 # 使用conda创建虚拟环境(具体内容请参考课件) conda create -n py_s…