数据健康管理总结

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

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是属于数学公式计算,需要每次输入多个历史取值,根据历史取值推测数下一个取值。

猜你喜欢

转载自www.cnblogs.com/judes/p/12626663.html