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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用sklearn.linear_model.SGDClassifier增量模型进行学习的记录 -> 正文阅读

[人工智能]使用sklearn.linear_model.SGDClassifier增量模型进行学习的记录

数据集下载链接是Human Activity Recognition Using Smartphones

?

train、test文件夹中分别包含训练和测试的文件,这里使用train中的数据进行增量学习模型,test中的数据用来测试
首先读取数据:

import numpy as np

from sklearn.linear_model import SGDClassifier

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']? # 指定默认字体

plt.rcParams['axes.unicode_minus'] = False? # 解决保存图像是负号'-'显示为方块的问题

x_train=[]

f=open(r'./X_train.txt','r')

for i in f.readlines():

??? i=i.strip()

??? temp=i.split(' ')

??? while '' in temp:

??????? temp.remove('')

??? x_train.append(temp)

f.close()

x_train=np.array(x_train)

x_test=[]

f=open(r'./X_test.txt','r')

for i in f.readlines():

??? i=i.strip()

??? temp=i.split(' ')

??? while '' in temp:

??????? temp.remove('')

??? x_test.append(temp)

f.close()

x_test=np.array(x_test)

y_train=[]

f = open(r'./y_train.txt', 'r')

for i in f.readlines():

??? i = i.strip()

??? y_train.append(i)

f.close()

y_test=[]

f = open(r'./y_test.txt', 'r')

for i in f.readlines():

??? i = i.strip()

??? y_test.append(i)

f.close()

print(x_train.shape,end=' ')

print(x_test.shape,end=' ')

print(len(y_train),len(y_test),set(y_train+y_test))

输出结果为:

(7352, 561) (2947, 561) 7352 2947 {'4', '5', '3', '1', '2', '6'}

开始增量训练:

x_train=x_train.astype(np.float32)

x_test=x_test.astype(np.float32)

classes=np.unique(y_train+y_test)

interval=100

start=0

sgd_clf = SGDClassifier()

x_axis=[]

y_axis=[]

for i in np.arange(1,(x_train.shape[0]//interval+1),1):

??? end=min([i*interval,x_train.shape[0]])

??? X=x_train[start:end]

??? Y=y_train[start:end]

??? sgd_clf.partial_fit(X,Y,classes=classes) #

??? start=end

??? # print("{} time".format(i))? # 当前次数

??? score=sgd_clf.score(x_test, y_test)

??? # print("{} score".format(score))? # 在测试集上看效果

??? x_axis.append(i)

??? y_axis.append(score)

0.3505259586019681 score
0.49338310145911096 score
0.4832032575500509 score
0.497794367153037 score
0.46623685103495077 score
0.4696301323379708 score
...

绘制迭代次数-score图:

plt.figure()

plt.plot(x_axis,y_axis)

plt.xlabel('迭代的次数')

plt.ylabel('score')

plt.tight_layout()

plt.savefig('./score.png',bbox_inches='tight')

plt.show()


?

参考内容:
使用sklearn进行增量学习
sklearn.linear_model.SGDClassifier — scikit-learn 1.0 documentation

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:16:59  更:2021-10-09 16:19:08 
 
开发: 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/21 23:04:47-

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