• 数据健康管理总结


    一、使用随机森林对系统参数进行故障诊断

    1、模型选择

    sklearn的随机森林+多输出结果模型

    model = MultiOutputClassifier(RandomForestClassifier())

    2、模型类型

    属于分类模型,即判断系统的n个参数是否正确,或是否属于特定的类型。

    举例:如参数是否属于正常的范围0~100之内,或者参数属于状态【正常、警告、故障】中的哪一状态

    3、模型建立过程

    提供系统n个参数的拟合数据=参数取值数据+结果标签数据,不能欠拟合和过拟合的数据,否则诊断结果可能出现误诊的情况。

    举例:一个系统有3个参数温度a、整机状态b、传感器状态c,参数定义如下

    温度a取值20~30正常、低于20和高于30异常;  # 20~30、小于20、大于20为参数取值数据,正常、异常是结果标签数据
    整机状态b取值0为正常、1为异常;           # 0、1为参数取值数据,正常、异常为结果标签数据 
    传感器状态c取值0为正常、1为警告、2为故障   # 0、1、2为参数取值数据,正常、警告、故障为结果标签数据

    拟合数据和结果标签数据:

    参数取值数据 结果标签数据
    [25, 0, 0]

    [正常, 正常, 正常]

    [30, 1, 0]

    [异常, 异常, 正常]

    [25, 0 , 2]

    [正常, 正常, 故障

    ...   ...

    这样的数据需要足够多,如产生10万条数据,能将实际可能产生的数据都囊括完。产生了拟合数据之后,将数据输入给模型即可完成建模。

    注意:产生数据的原则就是数据不要出现欠拟合和过拟合的情况。

    欠拟合数据:

    只产生了100条数据,不能囊括所有情况;特征数据太少,如一个系统本应由10个参数决定状态,这里只有3个参数。【通过增加数据和特征值解决】

    过拟合数据:

    产生的数据有错误,如把温度取值100当做了正常;特征值过多,如一个系统本应由2个参数决定状态,这里有3个【通过增加正确数据,减少噪声(多余的特征值)解决】

     

    4、参数诊断及定位

    通过输入真实参数取值到模型,模型即可输出对应的标签。如

    输入:[25, 0, 0]

    模型输出:[正常, 正常, 正常]

     

    5、关于迭代

    如有一天因为环境产生了变化,温度正常范围从20~30变成了25~35,重新生成拟合数据重新建模。可将新拟合数据追加到老拟合数据来建模【理论上这样不够正常,但貌似没有更好的方法,因为建模是需要大量时间、CPU资源的过程】

     

     

    二、使用线性回归对系统参数进行故障诊断

    1、模型选择

    sklearn的线性回归

    lr = LinearRegression()

    2、其他和随机森林类似

    模型类型、模型建立过程、参数诊断及定位和上面随机森林皆一致

    3、不同之处

    随机森林将大量的数据进行简单的分类,是1就是1,是2就是2,然后根据输入的真实数据,在模型中匹配最佳可能结果标签,然后输出最大概率的诊断结果

    而线性回归认为,某一时刻的取值和历史的取值是有关系的,如下一时刻的取值可能和历史的100次取值相关,然后根据以前的取值来进行当前的诊断。

    可根据实际情况选择不同模型。

     

     

    三、时间序列分析之使用GM11&GM21完成对单参数的预测

    1、模型选择

    greytheory的gm11【gm21还未在实际项目中使用】

    grey = GreyTheory()
    gm11 = grey.gm11

    2、模型类型

    对单个参数的预测,单调性参数使用gm11,周期性参数使用gm21【随机性参数使用gm31】

    如判断一个单调性参数1天后取值是多少。

    3、模型建立过程

    输入参数的n个等距历史取值,相邻参数的时间片为预测时间,如每隔1天取1个参数取值,共取1000次,那么gm11最后的输出结果为:预测最后一个数据之后一天的取值。

    举例:

    某个单调增的参数,如一个城市的人口数,从今天器往前每隔1天取1次数,取1000次:

    时间  人口数
    第一天   1000000
    第二天 1000100
    ... ...

    如果取值越多、间隔越小,预测结果越准确。

    4、参数预测

    输入:今天之前每隔1天取值,共1000次取值

    模型输出:今天作为起点,1天之后的人口数预测

    5、关于迭代

    无法迭代,gm11是属于数学公式计算,需要每次输入多个历史取值,根据历史取值推测数下一个取值。

    四、结合正态分布对数据的分析

    1、参数对象

    具备正态分布取值的数据。一般项目中大多数数据都属于正态分布,参数取值一般有个正常的取值范围A~B,而往往这个参数不会真正取值到A~B,而是集中在这个范围的更小一个范围。如一个器件的额定电压为220V,由于自带过压、欠压保护,即使电压上下浮动20V,也可让器件正常运行,一旦超过20V便可能损坏。而在实际运行中,如果每隔1s对输入电压采样,共采1万次【足够大】,可以发现取值往往在额定电压220V上下2~5V波动【举例,可能更小或更大】,故我们可以认为取值220V的概率更大,随着取值离220V越大,概率越小,也就是正态分布【简单的描述:正态分布就是概率与取值呈现单峰的参数,项目中可以假设一切范围取值类参数都呈正态分布,布尔、枚举类肯定不是】。

    2、随机分布和正态分布图例

    随机分布认为采样的数据中,200V~240V中任一电压和其他电压出现的频率一致【即概率大致相同】;正态分布认为有一个电压出现频率最高,然后频率向两边取值逐渐降低。

    随机分布

    正态分布

    3、作用

    正态分布与其相关的数学参数,是对参数实际情况的描述,输出对参数的分析结果,而非上文的诊断、预测。

    4、参数描述

    可直接输出参数的均值、峰值【众数】、中位数、方差、标准差、置信区间【带宽】、异常值等参数,即可一定程度上描述此参数对应时间内的一个走向。

    注意:由于参数取值往往是float型的,如果阈值范围较大,建议转化为int类型来处理,否则众数、中位数的结果可能出现问题。如参数范围是100.0~200.0,参数大概率取值范围是150~160,这个区间被取了1000次,由于float类型,可能导致150~160之间分成了很多份,使这个区间的同一数据被取得的次数较少;由于意外100~120之间有个数是110被取到了10次,故众数可能从150~160变成了110。

    5、模型选择

    numpy【用于数据生成、数据分析】、scipy【判断是否属于正态分布、数据分析】

    五、使用梯度下降对系统整机进行故障诊断

    1、模型选择

    sklearn的SGD模型

    model = SGDClassifier(shuffle=True, loss='log')

    SGD可在线迭代,可是不能多参数输出

    2、模型类型

    属于分类模型,即判断系统的n个参数是否正确,或是否属于特定的类型。

    举例:如参数是否属于正常的范围0~100之内,或者参数属于状态【正常、警告、故障】中的哪一状态

    3、模型建立过程

    提供系统n个参数的拟合数据=参数取值数据+结果标签数据,不能欠拟合和过拟合的数据,否则诊断结果可能出现误诊的情况。

    举例:一个系统有3个参数温度a、整机状态b、传感器状态c,参数定义如下

    温度a取值20~30正常、低于20和高于30异常;  
    整机状态b取值0为正常、1为异常;           
    传感器状态c取值0为正常、1为警告、2为故障  

    此模型只能有一个标签,故定义:只要有一个参数异常,则认为系统整机异常【0为正常,1为异常】

    拟合数据和结果标签数据:

    参数取值数据 结果标签数据
    [25, 0, 0]

    [0]

    [30, 1, 0]

    [1]

    [25, 0 , 2]

    [1]

    ...   ...

    这样的数据需要足够多,如产生10万条数据,能将实际可能产生的数据都囊括完。产生了拟合数据之后,将数据输入给模型即可完成建模。

    注意:产生数据的原则就是数据不要出现欠拟合和过拟合的情况。

    欠拟合数据:

    只产生了100条数据,不能囊括所有情况;特征数据太少,如一个系统本应由10个参数决定状态,这里只有3个参数。【通过增加数据和特征值解决】

    过拟合数据:

    产生的数据有错误,如把温度取值100当做了正常;特征值过多,如一个系统本应由2个参数决定状态,这里有3个【通过增加正确数据,减少噪声(多余的特征值)解决】

    4、参数诊断及定位

    通过输入真实参数取值到模型,模型即可输出对应的标签。如

    输入:[25, 0, 0]

    模型输出:[0]

    5、关于迭代

    使用partial_fit即可完成自我学习。

    六、时间序列分析之使用指数平滑对单个参数预测

    1、无明显单调或周期变化的参数

     

     2、单调变化的参数

     3、周期变化的参数

    七、判断多个或单个特征参数对另一参数的影响

     如海拔、人口、气温对房价的影响

    建议使用线性回归

  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/judes/p/12626663.html
Copyright © 2020-2023  润新知