基于AdaBoost的旋转机械故障诊断(Python)

news2024/11/25 3:44:47

前置文章:

将一维机械振动信号构造为训练集和测试集(Python)

https://mp.weixin.qq.com/s/DTKjBo6_WAQ7bUPZEdB1TA

旋转机械振动信号特征提取(Python)

https://mp.weixin.qq.com/s/VwvzTzE-pacxqb9rs8hEVw

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.colors import ListedColormap
import matplotlib.patches as mpatches
from sklearn.ensemble import AdaBoostClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn import tree
import joblib
df_train = pd.read_csv("statistics_10_train.csv" , sep = ',')
df_test = pd.read_csv("statistics_10_test.csv" , sep = ',')
X_train = df_train[['Kurtosis', 'Impulse factor', 'RMS', 'Margin factor', 'Skewness',
               'Shape factor', 'Peak to peak', 'Crest factor']].values
y_train = df_train['Tipo'].values
X_test = df_test[['Kurtosis', 'Impulse factor', 'RMS', 'Margin factor', 'Skewness',
               'Shape factor', 'Peak to peak', 'Crest factor']].values
y_test = df_test['Tipo'].values
n_estimators = range(1,150)
scores_train = []
scores_test = []
for i in n_estimators:
    abModel = AdaBoostClassifier(base_estimator = RandomForestClassifier(), n_estimators = i, learning_rate = 0.1)
    abModel.fit(X_train, y_train)
    scores_train.append(abModel.score(X_train, y_train))
    scores_test.append(abModel.score(X_test, y_test))
    if (i % 10 == 0):
        print('----- n estimators: ' + str(i) + '----- Accuracy test: ' + str(scores_test[i - 1]) + '-----')
plt.figure()
plt.xlabel('n_estimators')
plt.ylabel('Accuracy')
plt.plot(n_estimators, scores_train, label = 'Train')
plt.plot(n_estimators, scores_test, label = 'Test')
plt.legend()

n_estimators
range(1, 150)
abModel = AdaBoostClassifier(RandomForestClassifier(n_estimators = 90, min_samples_split = 2, min_samples_leaf  = 1),
                             n_estimators = 125, random_state=0)
abModel.fit(X_train, y_train)
pred_abModel = abModel.predict(X_test)
pred_train_abModel = abModel.predict(X_train)
print(confusion_matrix(y_train, pred_train_abModel))
print(classification_report(y_train, pred_train_abModel))
[[90  0  0]
 [ 0 90  0]
 [ 0  0 90]]
              precision    recall  f1-score   support

       Inner       1.00      1.00      1.00        90
       Outer       1.00      1.00      1.00        90
        Sano       1.00      1.00      1.00        90

    accuracy                           1.00       270
   macro avg       1.00      1.00      1.00       270
weighted avg       1.00      1.00      1.00       270
print(confusion_matrix(y_test, pred_abModel))
print(classification_report(y_test, pred_abModel))
[[28  2  0]
 [ 0 30  0]
 [ 0  3 27]]
              precision    recall  f1-score   support

       Inner       1.00      0.93      0.97        30
       Outer       0.86      1.00      0.92        30
        Sano       1.00      0.90      0.95        30

    accuracy                           0.94        90
   macro avg       0.95      0.94      0.95        90
weighted avg       0.95      0.94      0.95        90
sns.set()
mat = confusion_matrix(y_test, pred_abModel)
fig, ax = plt.subplots(figsize=(7,6))
sns.set(font_scale=1.3)
sns.heatmap(mat.T, square=False, annot=True, fmt='d', cbar=False,
            xticklabels=['Fallo inner race', 'Fallo oute race', 'Sano'],
            yticklabels=['Fallo inner race', 'Fallo oute race', 'Sano'],
            cmap=sns.cubehelix_palette(light=1, as_cmap=True))


plt.xlabel('true label');
plt.ylabel('predicted label');

sns.set()
mat = confusion_matrix(y_train, abModel.predict(X_train))
fig, ax = plt.subplots(figsize=(7,6))
sns.set(font_scale=1.3)
sns.heatmap(mat.T, square=False, annot=True, fmt='d', cbar=False,
            xticklabels=['Fallo inner race', 'Fallo oute race', 'Sano'],
            yticklabels=['Fallo inner race', 'Fallo oute race', 'Sano'],
            cmap=sns.cubehelix_palette(light=1, as_cmap=True))


plt.xlabel('true label');
plt.ylabel('predicted label');

知乎学术咨询:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

visual studio打包QT工程发布exe安装包

一、实验环境 软件版本下载链接visual studioMicrosoft Visual Studio Community 2022 (64 位) - Current 版本 17.7.5QTv6.6.3NSISv3.10官网 或 百度云1234Windows11 二、程序准备 1、程序生成 使用 visual studio 打开工程,选择 Release 模式后,点…

【面试题】MySQL数据库

目录 什么是视图,视图的作用是什么?什么是索引?MySQL中有哪些类型的索引?简述索引设计原则?简述索引的数据结构?简述Hash 和 B 树索引的区别?列出MySQL中导致索引失效的情况?简述数据…

永洪bi里topN的设置/用法

要实现的效果:实现通过输入参数,进行图表top的排序筛选 图示: 筛选前: 输入3,看top3的值: 输入-3,看倒数3个的值: 设置步骤: 1️⃣:添加一个“文本参数组件…

干货!车间生产管理的主要内容及管理方法,建议收藏

作为一名车间主管,我深知车间现场管理对于整个生产流程的重要性。车间是企业生产的核心区域,是产品从原材料转化为成品的关键环节。因此,有效的车间现场管理不仅能确保生产过程的顺利进行,还能提高生产效率、降低成本,…

招聘统计关于候选人的体验

我们生活在一个由感觉驱动的世界里。企业花费大量的时间和资源来改变用户体验、员工体验和产品用户体验。在招聘中,最重要的是候选人的体验。面对不断变化的候选人期望和招聘技术,作为与组织建立强烈关系的大门,改善候选人的感受是一个持续的…

python无法安装scipy怎么办

python安装scipy时出现以下错误&#xff1a; from scipy.misc import imread Traceback (most recent call last):File "D:/Pyproject/qq_Spider/create_cloud.py", line 14, in <module>from scipy.misc import imread ModuleNotFoundError: No module named …

功能测试【测试用例模板、Bug模板、手机App测试★】

功能测试 Day01 web项目环境与测试流程、业务流程测试一、【了解】web项目环境说明1.1 环境的定义&#xff1a;项目运行所需要的所有的软件和硬件组合1.2 环境(服务器)的组成&#xff1a;操作系统数据库web应用程序项目代码1.3 面试题&#xff1a;你们公司有几套环境&#xff1…

IP 定位在网络安全领域的关键作用

IP 定位&#xff0c;顾名思义&#xff0c;就是通过确定网络设备所使用的 IP 地址&#xff0c;来获取其大致的地理位置信息。这一重要的技术在网络安全领域的应用范围广泛&#xff0c;且效果显著。 首先&#xff0c;IP 定位有助于快速追踪和识别网络攻击的来源。当网络遭受攻击时…

浊度传感器设备的监测控制和智慧运维

浊度传感器是一种用于测量液体中悬浮颗粒浓度从而反映液体浊度的设备。 其工作原理主要基于以下几种常见方式&#xff1a; 1. 散射光测量原理&#xff1a;当光线穿过含有悬浮颗粒的液体时&#xff0c;颗粒会使光线发生散射。传感器通过测量特定角度的散射光强度来确定浊度。散…

机器学习课程复习——线性回归

Q&#xff1a;回归和分类的区别&#xff1f; 回归是连续的&#xff0c;分类是离散的 Q:用最小二乘法对线性回归模型进行参数估计思路 例题

黑马程序员-瑞吉外卖-前六章

黑马程序员瑞吉外卖 文章目录 1、开发环境搭建1.1 数据库环境1.2 maven项目搭建1.2.1 新建项目1.2.2 整合MyBatisPlus1.2.3 整合Druid1.2.4 配置文件application.yml1.2.5 尝试启动项目1.2.6 将前端静态页面引入到项目中 2、 后台系统登录功能2.1 需求分析2.2 代码开发2.2.1 创…

Go 实现继承的方式

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

机器学习--KNN算法

目录 一、实验目的 二、实验的软、硬件平台 三、实验内容概述 四、实验设计方案 五、实验内容 一、实验目的 通过本实验掌握kNN算法的原理&#xff0c;熟悉kNN算法。 二、实验的软、硬件平台 python 3.6.5 CourseGrading在线实验环境 三、实验内容概述 1.kNN算法简介…

企智汇软件:专业项目管理系统,一体化PaaS平台!快速落地项目!

在快速变化的市场环境中&#xff0c;项目管理不再是简单的任务分配和时间跟踪&#xff0c;它更是一门需要精准决策、高效沟通和智能协作的管理工具。然而&#xff0c;面对日益复杂的项目需求、跨部门的协作挑战以及海量的信息数据&#xff0c;传统的项目管理方式往往显得力不从…

mmdeploy环境部署过程中遇到的巨坑

之前已经写了一篇mmdeploy环境部署流程&#xff0c;在使用中却发现了很多问题&#xff0c;特此记录。 注意一&#xff1a; echo "export LD_LIBRARY_PATH/root/TensorRT-8.6.1.6/lib:/root/cudnn/lib:$LD_LIBRARY_PATH" >> ~/.bashrc && \ source ~/…

【AI大模型】ChatTTS——颠覆传统,赋能未来的文本到语音技术

文章目录 一、项目介绍二、代码解释三、从技术角度进行分析四、技术细节与实现五、优缺点分析六、应用场景分析七、未来展望八、结论 一、项目介绍 随着人工智能技术的不断进步&#xff0c;语音合成&#xff08;TTS&#xff09;技术得到了飞速发展。ChatTTS项目作为一个开源的…

零基础如何制作一个GIS可视化大屏?免费无难度!

一.GIS是什么&#xff1f; GIS&#xff08;地理信息系统&#xff09;开发是一种利用计算机技术对地理信息进行处理、分析、存储和展示的技术。GIS开发可以应用在很多领域&#xff0c;如城市规划、环境保护、交通管理、农业生产等。 二.如何将GIS与数字孪生结合起来&#xff1f…

C++并发之阻塞队列(block,queue)

目录 1 概述2 实现3 测试3 运行 1 概述 最近研究了C11的并发编程的线程/互斥/锁/条件变量&#xff0c;利用互斥/锁/条件变量实现一个支持多线程并发的阻塞队列&#xff0c;队列大小没有限制。 阻塞队列是一个模板类&#xff0c;有两个模块参数&#xff0c;参数1是元素类型&…

小红书营销:解锁企业增长新引擎,与小红书集成实现精准获客

在数字化营销的新时代&#xff0c;小红书以其独特的社区文化和精准的用户定位&#xff0c;成为了品牌和企业争相入驻的热门平台。今天将探讨如何通过小红书平台进行营销获客&#xff0c;并强调与企业集成的重要性&#xff0c;以实现更高效的品牌增长。 一、小红书营销的独特优…

API的优势及应用场景(淘宝API测试的详细步骤)

一、API的优势 API的出现为应用程序间的通信提供了一种新的方式&#xff0c;它有以下优势&#xff1a; 1、降低开发难度 开发者可以通过API访问其他应用程序的数据和功能&#xff0c;避免了重复开发&#xff0c;降低了开发难度。 2、提高开发效率 API提供了一种标准化的通…