风力涡轮机的预测性维护仪表盘 Part1 数据处理+预测剩余寿命(XGBoost)

预测方法(XGBoost)

RUL 预测通常使用以下一些方法:

  • 机器学习和深度学习:使用历史数据训练模型来预测剩余寿命。常见的算法包括支持向量机、随机森林、XGBoost 和神经网络等,本文采用XGBoost来预测风电剩余寿命(2014.5-----2015.1)

                                                   一、代码逐行解析

#库引入
import pandas sa pd

#调用机器学习相关库和工具做寿命预测,模型评估
from sklearn.model_selection import train_test_split

#固定搭配
pd.options.mode.chained_assignment = None

数据获取及处理

def data_preprocessing():
    #数据获取
    df = pd.read_csv("D:\\Wind Power Doctor\\SCADA_data1.csv")
    status_data_wec = pd.read_csv("D:\\Wind Power Doctor\\status_data_wec1.csv")

    # 计算逆变器的平均温度
    df["Inverter avg. temp"] = df[
        [
            "CS101 : Sys 1 inverter 1 cabinet temp.",
            "CS101 : Sys 1 inverter 2 cabinet temp.",
            "CS101 : Sys 1 inverter 3 cabinet temp.",
            "CS101 : Sys 1 inverter 4 cabinet temp.",
            "CS101 : Sys 1 inverter 5 cabinet temp.",
            "CS101 : Sys 1 inverter 6 cabinet temp.",
            "CS101 : Sys 1 inverter 7 cabinet temp.",
            "CS101 : Sys 2 inverter 1 cabinet temp.",
            "CS101 : Sys 2 inverter 2 cabinet temp.",
            "CS101 : Sys 2 inverter 3 cabinet temp.",
            "CS101 : Sys 2 inverter 4 cabinet temp.",
        ]
    ].mean(axis=1)

    #计算逆变器的标准温度
    df["Inverter std. temp"] = df[
        [
            "CS101 : Sys 1 inverter 1 cabinet temp.",
            "CS101 : Sys 1 inverter 2 cabinet temp.",
            "CS101 : Sys 1 inverter 3 cabinet temp.",
            "CS101 : Sys 1 inverter 4 cabinet temp.",
            "CS101 : Sys 1 inverter 5 cabinet temp.",
            "CS101 : Sys 1 inverter 6 cabinet temp.",
            "CS101 : Sys 1 inverter 7 cabinet temp.",
            "CS101 : Sys 2 inverter 1 cabinet temp.",
            "CS101 : Sys 2 inverter 2 cabinet temp.",
            "CS101 : Sys 2 inverter 3 cabinet temp.",
            "CS101 : Sys 2 inverter 4 cabinet temp.",
        ]
    ].std(axis=1)

上述代码计算了逆变器温度的均值温度与标准温度,并在DataFrame中生成新的列,df的内容如下:

dataframe部分列截取(原始数据见SCADA_data1.csv)
CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp.
25 26 .. .. .. 28
22 23 .. .. .. 32

经上述处理后,Dataframe将变为:

新增average & standard temperature两列
CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. CS101 : Sys 1 inverter 1 cabinet temp. Inverter avg. temp Inverter std. temp
25 26 .. .. .. 28 (25+26+...)/6
22 23 .. .. .. 32 (22+23+...)/6

时间格式转换 + 排序

    #将时间转换为Datatime格式,例如,01-02-2023 表示 2023 年 2 月 1 日)
    df["Time"] = pd.to_datetime(df["Time"], dayfirst=True, errors="coerce")

    #根据time列对DataFrame进行排序
    df.sort_values(by="Time", axis=0, inplace=True)

    #这行代码在排序后重置 DataFrame 的索引,drop=True 表示不保留旧索引列
    df.reset_index(drop=True, inplace=True)

                                                            

转换结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值