from pandas import read_csv
from sklearn.metrics import accuracy_score
from sklearn.model_selection import KFold
from sklearn.neighbors import KNeighborsClassifier
from numpy import mean
# load the dataset
data = read_csv('EEG_Eye_State_no_outliers.csv', header=None)
values = data.values
scores = list()
# 对数据进行K折交叉验证,K=10,因此会产生10组数据
kfold = KFold(10, shuffle=True, random_state=1)
# 对K折交叉验证构建的10组数据分别建模,并求均值
for train_ix, test_ix in kfold.split(values):
# 构建测试集和训练集
trainX, trainy = values[train_ix, :-1], values[train_ix, -1]
testX, testy = values[test_ix, :-1], values[test_ix, -1]
# 定义KNN模型,K=3
model = KNeighborsClassifier(n_neighbors=3)
# 训练模型并预测
model.fit(trainX, trainy)
yhat = model.predict(testX)
# 评估记录预测值,求均值
score = accuracy_score(testy, yhat)
scores.append(score)
print('>%.3f' % score)
# calculate mean score across each run
print('Final Score: %.3f' % (mean(scores)))
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于KNN实现使用脑电波预测眼睛睁闭项目源码+数据+超详细注释 任务:根据获取的脑电波的数据,预测人的眼睛是睁开的开始闭上的 内容包含: 1.做数据基本预览时发现数据有部分异常值存在 2.对数据异常值进行处理,当数据值超过三倍标准差时,作为异常值删除掉 3.使用K折交叉重构数据,以便对数据进行重复验证,令K=10,将数据分成10组 4.用KNN模型对数据进行预测,model = KNeighborsClassifier(n_neighbors=3)表示设置KNN的参数K=3 5.本文后续讨论了对于有时间序列特点的数据使用KNN可能具有的缺陷,对打乱顺和正常顺序的数据进行预测结果是有较大差异的,因为KNN是找到最相似的数据聚类,但对于具有时间序列特征的数据,在高频取数的数据集中,连续时间上相邻的数据一定是最为相似的。
资源推荐
资源详情
资源评论
收起资源包目录
基于KNN实现使用脑电波预测眼睛睁闭项目源码+数据+超详细注释.zip (9个子文件)
基于KNN实现使用脑电波预测眼睛睁闭项目源码+数据+超详细注释
02.删除波动大于三倍标准差的异常值.py 965B
EEG_Eye_State.csv 1.6MB
05.不打乱数据顺序的预测.py 731B
03.用KNN模型预测眼睛睁闭.py 1KB
04.打乱数据顺序的预测.py 730B
项目说明.md 838B
01.画出数据的折线图.py 369B
EEG Eye State.arff 1.6MB
EEG_Eye_State_no_outliers.csv 5.12MB
共 9 条
- 1
资源评论
Make程序设计
- 粉丝: 6827
- 资源: 3575
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功