机器学习--LibSVM

2023-12-04

传统机器学习的故障诊断方法,就是利用分类器对不同工况进行分类,大致流程包括:

在这里使用Matlab调用LibSVM库,跑一个简单的故障诊断模型,数据集选用凯斯西储大学轴承数据集(CWRU),对轴承内圈、外圈、滚珠等共10种工况进行故障诊断。

滚动轴承

轴承故障诊断的信号采取可以从多个信息源头出发,包括声波、振动、电流、电压和转速等

此处采用振动信号进行分析:

CWRU数据集

CWRU (Case Western Reserve University) 数据集是一个用于轴承故障诊断的公开数据集

DE (drive end) 驱动端        FE  (fan end)    风扇端

采样频率 :12KHz/48KHz

电机负载:0/1/2/3马力        电机转速:1730/1750/1797rpm

故障位置:Ball (滚动体)       OuterRace(外圈)        InnerRace(内圈)

故障直径:0.007/0.014/0.021 英寸

外圈故障位置:3/6/12 点钟位置

下载地址

http://csegroups.case.edu/bearingdatacenter/home >http://csegroups.case.edu/bearingdatacenter/home

支持向量机(SVM)

支持向量机是一种监督学习算法,主要用于分类和回归分析。它通过在特征空间中构建一个最优超平面来进行分类,使得不同类别的样本之间的间隔最大化。支持向量机在处理高维数据和非线性问题上表现出色。

LibSVM是一个流行的支持向量机(Support Vector Machine,简称SVM)库。它提供了用于分类和回归的高效算法,并具有广泛的应用领域。

下载地址

LIBSVM -- A Library for Support Vector Machines (ntu.edu.tw) >https://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html

1.数据收集和准备

clc;clear all;close all;
drive_100 = load('D:\NewCWRU\NormalBaseline\1730\Normal.mat');

drive_108 = load('D:\NewCWRU\12DriveEndFault\1730\0.007-InnerRace.mat');
drive_121 = load('D:\NewCWRU\12DriveEndFault\1730\0.007-Ball.mat');
drive_133 = load('D:\NewCWRU\12DriveEndFault\1730\0.007-OuterRace6.mat');

drive_172 = load('D:\NewCWRU\12DriveEndFault\1730\0.014-InnerRace.mat');
drive_188 = load('D:\NewCWRU\12DriveEndFault\1730\0.014-Ball.mat');
drive_200 = load('D:\NewCWRU\12DriveEndFault\1730\0.014-OuterRace6.mat');

drive_212 = load('D:\NewCWRU\12DriveEndFault\1730\0.021-InnerRace.mat');
drive_225 = load('D:\NewCWRU\12DriveEndFault\1730\0.021-Ball.mat');
drive_237 = load('D:\NewCWRU\12DriveEndFault\1730\0.021-OuterRace6.mat');

2.数据分隔和预处理

de_100 = drive_100.X100_DE_time(1:4:480000);
de_108 = drive_108.X108_DE_time(1:120000);
de_121 = drive_121.X121_DE_time(1:120000);
de_133 = drive_133.X133_DE_time(1:120000);
de_172 = drive_172.X172_DE_time(1:120000);
de_188 = drive_188.X188_DE_time(1:120000);
de_200 = drive_200.X200_DE_time(1:120000);
de_212 = drive_212.X212_DE_time(1:120000);
de_225 = drive_225.X225_DE_time(1:120000);
de_237 = drive_237.X237_DE_time(1:120000);

3.特征提取

features = table;
%% 依次循环着对数据提取时域特征
for i = 1:1000
  v = x(i,:);
  N = length(v);%长度 2621
  features.Mean(i) = mean(v);%平均值
  features.Std(i) = std(v);%标准差
  features.Skewness(i) = skewness(v);%偏度
  features.Kurtosis(i) = kurtosis(v);%峭度
  features.max(i) = max(v);%最大值
  features.min(i) = min(v);%最小值
  features.Peak2Peak(i) = peak2peak(v);%峰峰值
  features.RMS(i) = rms(v);%均方根
  features.CrestFactor(i) = max(v)/rms(v); %振幅因数
  features.ShapeFactor(i) = rms(v)/mean(abs(v)); %波形因数
  features.ImpulseFactor(i) = max(v)/mean(abs(v)); %冲击因数
  features.MarginFactor(i) = max(v)/mean(abs(v))^2;%裕度因数
  features.Energy(i) = sum(v.^2);%能量
end

%% 对信号进行傅里叶变化,并求取频域特征
for i = 1:1000
 v = x(i,:);
 N = length(v); %长度
 v_fftz =abs((fft(v))/(N/2));
%     v_fftz = v_fftz(1:N/2);                                                       %频域值
 features.Mean_fftz(i) = mean(v_fftz);%平均值
 features.Std_fftz(i) = std(v_fftz);%标准差
 features.Skewness_fftz(i) = skewness(v_fftz);%偏度
 features.Kurtosis_fftz(i) = kurtosis(v_fftz);%峭度
 features.max_fftz(i) = max(v_fftz);%最大值
 features.min_fftz(i) = min(v_fftz);%最小值
 features.Peak2Peak_fftz(i) = peak2peak(v_fftz);%峰峰值
 features.RMS_fftz(i) = rms(v_fftz);%均方根
 features.CrestFactor_fftz(i) = max(v_fftz)/rms(v_fftz);%振幅因数
 features.ShapeFactor_fftz(i) = rms(v_fftz)/mean(abs(v_fftz));%波形因数
 features.ImpulseFactor_fftz(i) = max(v_fftz)/mean(abs(v_fftz));%冲击因数
 features.MarginFactor_fftz(i) = max(v_fftz)/mean(abs(v_fftz))^2;%裕度因数
 features.Energy_fftz(i) = sum(v_fftz.^2);%能量
end

4.SVM训练预测

%训练集
Train_matrix,PS]=mapminmax(train_matrix');
Train_matrix=Train_matrix';
%测试集
Test_matrix=mapminmax('apply',test_matrix',PS);
Test_matrix=Test_matrix';
%创建/训练SVM
model=libsvmtrain(train_label,train_matrix,'-t 0');
%SVM仿真测试
[predict_label_1,accuracy_1,~]=svmpredict(train_label,train_matrix,model);
[predict_label_2,accuracy_2,~]=svmpredict(test_label,test_matrix,model);
result_1=[train_label predict_label_1]
result_2=[test_label predict_label_2]

5.绘制图像

figure
plot(1:length(train_label),train_label,'r-*',1:length(train_label),predict_label_1,'b:o')
grid on
legend('真实类别','预测类别')
xlabel('训练集样本编号')
ylabel('训练集样本类别')
string_1={'训练集SVM预测结果对比',sprintf('accuracy_1=%.2f%%',accuracy_1(1,1))};
title(string_1);
figure
plot(1:length(test_label),test_label,'r- *')
hold on
plot(1:length(test_label),predict_label_2,'b:o')
grid on
legend('真实类别','预测类别')
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string={'测试集SVM预测结果对比(RBF核函数)';sprintf('accuracy_2=%.2f%%',accuracy_2(1,1))};
title(string)

故障诊断效果如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习--LibSVM 的相关文章

  • 使用 Python 的字符串子序列内核和 SVM

    如何使用子序列内核 SSK Lodhi 2002 在 Python 中训练 SVM 支持向量机 我找到了使用幕府将军库的解决方案 您必须从提交安装它0891f5a38bcb https code google com p shogun to
  • lr推荐模型 特征重要性分析

    在分析lr模型特征重要性之前 需要先明白lr模型是怎么回事儿 lr模型公式是sigmoid w1 x1 w2 x2 wn xn 其中w1 w2 wn就是模型参数 x1 x2 xn是输入的特征值 对于lr模型来说 特征可以分为两个粒度 一个是
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At
  • 基于支持向量的数据重采样器

    我正在努力实现一个数据重采样器以基于support vectors 这个想法是为了适应SVM分类器 得到support vector类的点 然后通过仅选择每个类的支持向量点附近的数据点来平衡数据 以使类具有相同数量的示例 忽略所有其他 远离
  • 绘制超平面线性SVM python

    我正在尝试绘制使用 LinearSVC 和 sklearn 训练的模型的超平面 请注意 我正在使用自然语言 在拟合模型之前 我使用 CountVectorizer 和 TfidfTransformer 提取了特征 这里是分类器 from s
  • 词袋训练样本

    我已经实施了 Bag Of Words 一切都很顺利 但是 我对一些步骤以及如何实施感到困惑 我可以创建弓描述符作为词袋中创建样本的最后一步 如此处所示bowDE compute img keypoints bow descriptor 问
  • 如何处理 SVM 中的数据不平衡问题?

    如果我在较大的训练集上训练 SVM 并且类变量为 True 或 False 那么与训练集中的 False 值数量相比 True 值很少会影响训练模型 结果吗 它们应该相等吗 如果我的训练集 True 和 False 的分布不相等 我该如何解
  • 【需求响应】改进连续时间控制方法用于分散式需求响应的恒温负荷研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码及文章
  • 机器学习:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • AI 赋能绿色制冷,香港岭南大学开发 DEMMFL 模型进行建筑冷负荷预测

    近年来 城市化进程加速所带来的碳排放量骤增 已经严重威胁到了全球环境 多个国家均已给出了 碳达峰 碳中和 的明确时间点 一场覆盖全球 全行业的 绿色革命 已经拉开序幕 在一众行业中 建筑是当之无愧的能耗大户 其中又以暖通空调 Heating
  • R - mlr:是否有一种简单的方法可以在嵌套重采样(空间)中获得调整后的支持向量机模型的可变重要性?

    我正在尝试获取可变重要性对于a的所有预测变量 或变量 或特征 调优支持向量机 SVM 模型使用e1071 svm通过mlr 封装在R 但我不确定我的评估是否正确 好吧 一开始的想法是 为了获得诚实调整的 svm 模型 我遵循嵌套重采样教程
  • 一类 SVM libSVM

    假设我的特征向量是 x1 x2 xn 谁能给我一个使用 libSVM 训练一类 SVM 的代码 我应该如何使用交叉验证来学习参数 这可能对你有帮助 label ones Number Of your training instances 1
  • 将 LinearSVC 的决策函数转换为概率(Scikit learn python)

    我使用 scikit learn LinearSVC 中的线性 SVM 来解决二元分类问题 我知道 LinearSVC 可以为我提供预测标签和决策分数 但我想要概率估计 对标签的置信度 由于速度原因 我想继续使用 LinearSVC 与具有
  • 使用支持向量回归进行时间序列预测

    我一直在尝试使用Python语言中的支持向量回归来实现时间序列预测工具 我使用 scikit learn 中的 SVR 模块进行非线性支持向量回归 但我对未来事件的预测有严重的问题 回归线非常适合原始函数 根据已知数据 但一旦我想预测未来的
  • 让SVM在Python中运行得更快

    使用code下面是 python 中的 svm from sklearn import datasets from sklearn multiclass import OneVsRestClassifier from sklearn svm
  • 插入符 rfe + sum 与 ROC 中的特征选择

    我一直在尝试使用插入符包应用递归功能选择 我需要的是 ref 使用 AUC 作为性能衡量标准 经过一个月的谷歌搜索后 我无法让该过程正常运行 这是我使用过的代码 library caret library doMC registerDoMC
  • 帮助--LibSVM 的准确率达到 100%?

    名义上这是一个好问题 但我很确定这是因为发生了一些有趣的事情 作为上下文 我正在研究面部表情 识别空间中的一个问题 因此获得 100 的准确度似乎令人难以置信 并不是说在大多数应用程序中这是合理的 我猜测数据集中存在一些一致的偏差 这使得
  • 如何解释R中SVM的预测结果?

    我是 R 新手 我正在使用e1071R 中的 SVM 分类包 我使用了以下代码 data lt loadNumerical model lt svm data ncol data data ncol data gamma 10 print
  • 将 OneClassSVM 与 GridSearchCV 结合使用

    我正在尝试在 OneClassSVM 上执行 GridSearchCV 函数 但我似乎无法找到 OCSVM 的正确评分方法 根据我收集的信息 像 OneClassSVM score 这样的东西不存在 因此 GridSearchCV 中没有所
  • Java 的支持向量机?

    我想用Java编写一个 智能监视器 它可以随时发出警报detects即将到来的性能问题 我的 Java 应用程序正在以结构化格式将数据写入日志文件

随机推荐

  • 照片拼图软件哪些值得推荐?制作创意拼贴画

    你是否厌倦了单调的照片展示方式 你希望让你的照片更加有趣 更具创意吗 这时候你就需要一个拼图软件了 这种软件可以帮助你将多张照片拼贴在一起 从而制作出独特的拼贴画 通过这种软件 你可以轻松地调整照片大小 位置和角度 实现你想要的创意效果 同
  • 数说CS | 拟录取名额稳定,直博减少?保研清华大学软件学院难吗?

    写在前面 清华大学软件学院 首批全国示范性软件学院之一 招收哪些专业 保研录取情况如何 今天 岛主就带你 深度揭秘清华大学软件学院 01 院校介绍 清华大学软件学院是2001年经国家教育部和国家计委联合发文批准成立的首批全国示范性软件学院之
  • 手机话筒的安全性:风险与防范措施

    随着科技的快速发展和人们生活节奏的加快 手机已经成为我们日常生活中不可或缺的一部分 然而 手机话筒作为手机的主要部件之一 其安全性问题却往往被人们忽视 本文将围绕手机话筒的安全性进行探讨 分析可能存在的风险 并提出相应的防范措施 一 手机话
  • 2024 信息安全专业毕业设计(论文)选题合集 最新版

    目录 前言 信息安全选题 选题迷茫 选题的重要性 更多选题指导 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研
  • 网站漏洞怎么修复代码漏洞

    jeecms 最近被爆出高危网站漏洞 可以导致网站被上传webshell木马文件 受影响的版本是jeecms V6 0版本到jeecmsV7 0版本 该网站系统采用的是JAVA语言开发 数据库 gt https cloud tencent
  • OpenHarmony 设备启动Logo和启动视频替换指南

    前言 OpenHarmony源码版本 4 0release 开发板 DAYU rk3568 一 Logo替换 替换其中的logo bmp 和 logo kernel bmp文件 注意事项 1 图片的分辨率需要和设备匹配 2 如果是非首次编译
  • 文字配音怎么制作的?让文字生动起来

    文字配音工具是一种将文字转化为语音的软件 它能够让文字以声音的形式呈现给听众 这种工具通常被用于阅读电子书 听新闻 看文章等方面 也可以帮助视觉障碍者更好地理解文字内容 文字配音工具一般具有多种语音选项和声音效果 可以让使用者自由选择适合自
  • 活动报名|JARVIS-1:开放世界自主智能体的构建

    王子豪 北京大学智能学院博士生 导师为梁一韬教授 曾获国家奖学金 北京市优秀毕业生等荣誉 主要研究方向为开放世界下多任务智能体的构建 尤其关心基于基础模型的智能体的泛化能力 近年来在CVPR NeurIPS等人工智能顶会上发表多篇论文 曾获
  • 多逆变器三相并网下垂控制仿真模型(Simulink仿真实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现
  • 钛合金的检测项目和标准-科学指南针

    根据国际商业市场的分析与预测 到2023年 钛合金的前景将会非常光明 可能会呈现指数增长 增长幅度较大 其实早在2017年 MRFR就指出2017 2023年这一时期内 钛合金的市场一定是保持稳定的增长 4月份 国际商业市场预测发布了 全球
  • 深度学习--环境搭建

    1 选择合适的操作系统 选择一个适合你的需求和喜好的 Linux 操作系统 比如 Ubuntu CentOS 等 此处以Ubuntu为例 2 安装anaconda创建虚拟环境 下载Anaconda安装程序 此处使用清华镜像源 wget c
  • 波奇学C++:C++11的可变参数模板和emplace

    可变参数模板 args是参数包 template
  • X射线荧光分析仪的原理及应用-科学指南针

    X射线荧光分析仪简称XRF 是分析XRF光谱分析技术可用于确认物质里的特定元素 同时将其量化 发展历程 1895年伦琴发现X射线 1910年特征X射线光谱的发现 为X射线光谱学的建立奠定了基础 20世纪50年代商用X射线发射与荧光光谱仪的问
  • 时效性文件链接实现思路

    1 写在前面 之前在某个项目中 用户上传的文件 头像 视频 文档等等 是通过静态路径来访问的 这导致一旦该文件的路径暴露 用户可以在不登录的情况下 直接访问服务器的文件资源 客户因此提出 文件的路径必须要具有时效性 类似对象存储的文件链接
  • jieba分词有哪些模式?

    jieba分词库提供了三种分词模式 精确模式 全模式和搜索引擎模式 下面分别介绍这三种模式的特点和适用场景 1 精确模式 精确模式是默认的分词模式 它试图将文本精确地切分成词语 适用于文本分析和挖掘等任务 在精确模式下 jieba分词库会对
  • 分布式数字身份DID简介(五)DID的应用

    在上一篇文章中 我们给出了一种零知识证明的方法 解决用户身份属性的隐私问题 下面我们再来谈谈基于DID技术 我们都能在什么场景去应用 01 无密码安全登录 这个使用场景大家应该都很熟悉了 就类似于微信扫码登录 当我们要注册或者登录一个网站时
  • 无人巡检 | AIRIOT变电站无人机运防一体管理解决方案

    传统的变电站安全管理存在着人力成本高 效率低 安全风险难以全面控制等问题 主要依靠人工巡检和监控设备 往往存在如下的运维问题和管理痛点 巡检监控能力差 传统变电站管理系统无法对变电站进行全面的巡检监控 以及无法完成对变电站周边环境的监测 企
  • 高分子材料表征方法简介-科学指南针

    生物医用高分子材料在医疗领域的应用越来越广泛 如常见的骨科植入材料 人工晶体 填充假体 人工血管 医用缝合线等等 生物医用材料 尤其是植入类材料 需要与人体长时间接触并在体内承担起修复和支撑功能 不仅要求其在生理条件下的物理机械性能要长期保
  • pdf转txt格式怎么操作?教你轻松转换PDF

    你是否曾经需要从PDF文件中提取文本 但却不知道该如何操作 或者你正在寻找一个轻松方便的方法来将PDF文件转换为TXT文件 如果你有这样的需求 那么你就来对了地方 接下来将介绍两款工具 它们都可以帮助你将PDF文件转换为TXT文件 并且具有
  • 机器学习--LibSVM

    传统机器学习的故障诊断方法 就是利用分类器对不同工况进行分类 大致流程包括 在这里使用Matlab调用LibSVM库 跑一个简单的故障诊断模型 数据集选用凯斯西储大学轴承数据集 CWRU 对轴承内圈 外圈 滚珠等共10种工况进行故障诊断 滚