我遇到预测建模问题。希望有人有时间可以帮助我。起始位置如下所示。 S1-S2是传感器测量值,RUL是我的目标值。
id period s1 s2 s3 RUL
1 1 510.23 643.43 1585.29 6
1 2 512.34 644.89 1586.12 5
1 3 514.65 645.11 1587.99 4
1 4 512.98 647.59 1588.45 3
1 5 516.34 649.04 1590.65 2
1 6 518.12 652.62 1593.09 1
2 1 509.77 640.61 1584.91 9
2 2 510.26 642.06 1586.00 8
2 3 511.95 643.62 1588.09 7
2 4 513.51 646.51 1589.45 6
2 5 512.17 648.06 1589.54 5
2 6 515.56 646.11 1586.22 4
2 7 518.78 649.34 1586.96 3
2 8 519.90 650.30 1588.95 2
2 9 521.05 651.39 1591.34 1
3 1 501.11 653.99 1580.45 8
3 2 511.45 643.23 1584.09 7
3 3 505.45 643.78 1586.11 6
3 4 504.45 643.43 1588.34 5
3 5 506.45 643.71 1589.89 4
3 6 511.45 643.33 1591.21 3
3 7 516.45 643.61 1592.42 2
3 8 518.45 643.05 1596.77 1
我的目标是预测未见数据的剩余有用实时(RUL)。在这种情况下,我只有一种类型的机器具有不同的ID(这意味着1种类型和3种不同的物理系统)。对于预测,id无关紧要,因为它是同一台机器。此外,我想添加新功能。 s1 s2和s3的移动平均值。所以我必须添加三个名为a1,a2和a3的新列。
例如,a1应该如下所示:
a1
NaN
NaN
512.41
513.32
514.66
515.81
NaN
NaN
510.66
511.91
512.54
513.75
515.50
518.08
519.91
NaN
NaN
506.00
507.12
505.45
507.45
511.45
515.45
接下来的问题是,我无法使用NaN,因为它是一个字符串。如何忽略/使用a1,a2和a3?
下一个问题是:我如何使用像RandomForest和Bagged Decision Trees这样的回归模型和train_test_split来预测看不见的新数据的RUL? (当然我需要更多数据,这个例子只给出结构。)[s1],[s2],[s3]是我的输入,RUL是输出。 此外,我想用平均绝对误差,均方误差和R 2来评估模型。
最后,我想使用gridsearch方法进行调整。
提前谢谢你。我知道我想做什么,但我无法用python实现它。完整的代码将是完美的。
答案 0 :(得分:1)
解决这个问题的标准方法是通过估算。 SciKitLearn有一个用于插补的内置包。文档在这里:http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.Imputer.html
更换NaN有3种策略:
1)用柱子的平均值替换它
2)用列的模式替换它
3)用柱的中位数替换它
使用示例如下:
from sklearn.preprocessing import Imputer
imp = Imputer(strategy = 'mean', axis = 1)
a1 = Imputer.fit_transform(a1, strategy = 'mean')
此处还提供了一些使用示例:http://scikit-learn.org/stable/modules/preprocessing.html#imputation