精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一種基于學習的電池壽命預測(Python)

發布于 2024-12-9 12:03
瀏覽
0收藏

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import pandas as pd
import glob
import time
from qore_sdk.client import WebQoreClient
from tqdm import tqdm_notebook as tqdm
from ipywidgets import IntProgress

df_35 = pd.read_csv('CS2_35.csv',index_col=0).dropna()
df_36 = pd.read_csv('CS2_36.csv',index_col=0).dropna()
df_37 = pd.read_csv('CS2_37.csv',index_col=0).dropna()
df_38 = pd.read_csv('CS2_38.csv',index_col=0).dropna()

Plot Parameters

Only discharge capacity is used for prediction

fig = plt.figure(figsize=(9,8),dpi=150)
names = ['capacity','resistance','CCCT','CVCT']
titles = ['Discharge Capacity (mAh)', 'Internal Resistance (Ohm)',
          'Constant Current Charging Time (s)','Constant Voltage Charging Time (s)']
plt.subplots_adjust(hspace=0.25)
for i in range(4):
    plt.subplot(2,2,i+1)
    plt.plot(df_35[names[i]],'o',ms=2,label='#35')
    plt.plot(df_36[names[i]],'o',ms=2,label='#36')
    plt.plot(df_37[names[i]],'o',ms=2,label='#37')
    plt.plot(df_38[names[i]],'o',ms=2,label='#38')
    plt.title(titles[i],fontsize=14)
    plt.legend(loc='upper right')
    if(i == 3):
        plt.ylim(1000,5000)
    plt.xlim(-20,1100)

X_train,y_train = ConvertData([df_35,df_37,df_38],50)
X_test,y_test = ConvertData([df_36],50)

print(X_train.shape,X_test.shape,y_train.shape,y_test.shape)

(2588, 50) (873, 50) (2588,) (873,)

idx = np.arange(0,X_train.shape[0],1)
idx = np.random.permutation(idx)
idx_lim = idx[:500]


X_train = X_train[idx_lim]
y_train = y_train[idx_lim]

X_train = X_train.reshape([X_train.shape[0], X_train.shape[1], 1])
X_test = X_test.reshape([X_test.shape[0], X_test.shape[1], 1])
print(X_train.shape,X_test.shape,y_train.shape,y_test.shape)

(500, 50, 1) (873, 50, 1) (500,) (873,)

%%time
client = WebQoreClient(username, password, endpoint=endpoint)
time_ = client.regression_train(X_train, y_train)
print('Time:', time_['train_time'], 's')

Time: 1.8583974838256836 s
Wall time: 2.7 s

res = client.regression_predict(X_train)


fig=plt.figure(figsize=(12, 4),dpi=150)
plt.plot(res['Y'],alpha=0.7,label='Prediction')
plt.plot(y_train,alpha=0.7,label='True')
plt.legend(loc='upper right',fnotallow=12)

res = client.regression_predict(X_test[300:800])

x_range = np.linspace(301,800,500)
fig=plt.figure(figsize=(12, 4),dpi=150)
plt.plot(x_range,y_test[300:800],label='true',c='gray')
plt.plot(x_range,res['Y'],label='Qore',c='red',alpha=0.8)
plt.xlabel('Number of Cycle',fnotallow=13)
plt.ylabel('DIscharge Capacity (Ah)',fnotallow=13)
plt.title('Prediction of Discharge Capacity of Test Data (CS2-36)',fnotallow=14)
plt.legend(loc='upper right',fnotallow=12)

from sklearn.metrics import mean_squared_error
mean_squared_error(y_test[300:800], res['Y'])

initial = X_test[500]
results = []
for i in tqdm(range(50)):
    if(i == 0):
        res = client.regression_predict([initial])['Y']
        results.append(res[0])
        time.sleep(1)
    else:
        initial = np.vstack((initial[1:],np.array(res)))
        res = client.regression_predict([initial])['Y']
        results.append(res[0])
        time.sleep(1)

HBox(children=(IntProgress(value=0, max=50), HTML(value='')))

fig=plt.figure(figsize=(12,4),dpi=150)
plt.plot(np.linspace(501,550,50),results,'o-',ms=4,lw=1,label='predict')
plt.plot(np.linspace(401,550,150),y_test[400:550],'o-',lw=1,ms=4,label='true')
plt.legend(loc='upper right',fnotallow=12)
plt.xlabel('Number of Cycle',fnotallow=13)
plt.ylabel('Discharge Capacity (Ah)',fnotallow=13)

知乎學術咨詢:

https://www.zhihu.com/consult/people/792359672131756032?isMe=1

擔任《Mechanical System and Signal Processing》《中國電機工程學報》等期刊審稿專家,擅長領域:信號濾波/降噪,機器學習/深度學習,時間序列預分析/預測,設備故障診斷/缺陷檢測/異常檢測。

分割線分割線分割線

渦扇發動機全稱為渦輪風扇發動機,是一種先進的空中引擎,由渦輪噴氣發動機發展而來。渦扇發動機主要特點是首級壓縮機的面積比渦輪噴氣發動機大。同時,空氣螺旋槳(扇)將部分吸入的空氣從噴射引擎噴射出來,并將其向后推動,以達到推進的目的。

渦扇發動機結構是一種特殊的引擎結構,它在渦輪噴氣發動機的基礎上再增加了 1-2 級低壓(低速)渦輪,這些渦輪可以驅動一定數量的風扇,消耗掉一部分渦噴發動機(核心機)的燃氣排氣動能,從而進一步降低燃氣排出速度,提高引擎的性能。從前至后,渦扇發動機由風扇,壓氣機,燃燒室,導向葉片,高壓低壓渦輪,加力燃燒室和尾噴管組成。

目前大多數論文的實驗中使用的數據集是美國國家航空航天局的 C-MAPSS 數據集。C-MAPSS 數據集是由模擬航空發動機的模擬軟件生成。模擬發動機的結構圖如下:

主要部件有低壓渦輪(low pressure turbine,LPT)、高壓渦輪(high pressure turbine,HPT)、高壓壓氣機(high pressure compressor,HPC)、低壓壓氣機(low pressure compressor,LPC)、風扇(fan)、噴嘴(nozzle)、燃燒室(combustor)、低壓轉子轉速(N1)和高壓轉子轉速(N2)等。風扇在正常飛行條件下工作,將空氣分流至內、外涵道。LPC 和 HPC 通過增溫增壓技術將高溫、壓力混合氣體輸送到 combustor。LPT 可以有效減少空氣的流速,大大提高飛機煤油的化學能轉換效率。而 HPT 則是利用高溫、高壓氣體對渦輪葉片施加做功,從而產生機械能。N1、N2 和 nozzle 的應用大大提升了發動機的燃燒效率。

監控渦扇發動機狀況為21個傳感器。由于傳感器的單位不同,傳感器記錄的數值的量級也有所差異,位于10的-2次方到10的3次方之間。例如,燃燒室油氣比數值的量級是10的-2次方;低壓渦輪冷氣流量數值的量級是10的1次方。表2-2描述了NASA的C-MAPSS數據集。由于不同的操作條件和故障模式,數據集可以分為四個子數據集,依次是FD001、FD002、FD003和FD004。每個子數據分為訓練集和測試集,記錄了發動機的3種操作設置和21個傳感器數據。每個子數據集通過.txt文件單獨保存。在.txt文件中,每一行記錄了一個引擎某個時間刻的3種操作設置和21個傳感器數據。關于故障模式和操作條件方面,FD001和FD002子數據集包含一種故障模式(高壓壓氣機退化),FD003和FD004包含兩種故障模式(高壓壓氣機退化和風扇退化);FD001和FD003只有一種操作條件,FD002和FD004有六種操作條件。由于FD002和FD004子數據集引擎的操作環境復雜多變,FD002和FD004子數據集中RUL的預測更加困難。

可見,渦扇發動機數據集包含大量的按時間順序采集的傳感器數據,這些數據包括發動機溫度、壓力、振動等多個方面的指標。并且渦扇發動機可能會出現多種故障模式。這適合用時間序列模型去對渦扇發動機的剩余使用壽命做預測。

鑒于此,采用機器學習和深度學習對C-MAPSS渦扇發動機進行剩余使用壽命RUL預測,Python代碼,Jupyter Notebook環境,方法如下:

(1)VAR with LSTM

(2)VAR with Logistic Regression

(3)LSTM (Lookback=20,10,5,1)

LSTM Lookback=10的結果如下:

final_pred = []
count = 0
for i in range(100):
    j = max_cycles[i] 
    temp = pred[count+j-1]
    count=count+j
    final_pred.append(int(temp))


print(final_pred)




fig = plt.figure(figsize=(18,10))
plt.plot(final_pred,color='red', label='prediction')
plt.plot(y_test,color='blue', label='y_test')
plt.legend(loc='upper left')
plt.grid()
plt.show()


print("mean_squared_error >> ", mean_squared_error(y_test,final_pred))
print("root_mean_squared_error >> ", math.sqrt(mean_squared_error(y_test,final_pred)))
print("mean_absolute_error >>",mean_absolute_error(y_test,final_pred))

VAR with Logistic Regression結果:

fig = plt.figure(figsize=(18,10))
plt.plot(logistic_pred,color='red', label='prediction')
plt.plot(y_test,color='blue', label='y_test')
plt.legend(loc='upper left')
plt.grid()
plt.show()

VAR with LSTM結果:

fig = plt.figure(figsize=(18,10))
plt.plot(lstm_pred,color='red', label='prediction')
plt.plot(y_test,color='blue', label='y_test')
plt.legend(loc='upper left')
plt.grid()
plt.show()

完整代碼可通過知乎學術咨詢獲得:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1

基于機器學習和深度學習的NASA渦扇發動機剩余使用壽命預測(C-MAPSS數據集,Python代碼,ipynb 文件)

以美國航空航天局提供的航空渦扇發動機退化數據集為研究對象,該數據集包含多臺發動機從啟動到失效期間多個運行周期的多源傳感器時序狀態監測數據,它們共同表征了發動機的性能退化情況。為減小計算成本,需要對原始多源傳感器監測數據進行數據篩選,剔除與發動機性能退化情況無關的傳感器數據項,保留有用數據,為對多源傳感器數據進行有效甄別,考慮綜合多種數據篩選方式,以保證篩選結果的準確性。

主要內容如下:

Data Visualization:

  1. Maximum life chart and engine life distribution chart for each unit.
  2. Correlation coefficient chart between sensors and RUL.
  3. Line chart showing the relationship between sensors and RUL for each engine.
  4. Value distribution chart for each sensor.

Feature Engineering:

  1. Based on the line chart showing the relationship between sensors and engine RUL, sensors 1, 5, 10, 16, 18, and 19 are found to be constant. Hence, these features are removed. Finally, the data is normalized.

Machine Learning Model:

  1. "Rolling mean feature" is added to the data, representing the average value of features over 10 time periods.
  2. Seven models are built: Linear regression, Light GBM, Random Forest, KNN, XGBoost, SVR, and Extra Tree.
  3. MAE, RMSE, and R2 are used as evaluation metrics. SVR performs the best with an R2 of 0.61 and RMSE = 25.7.

Deep Learning Model:

  1. The time window length is set to 30, and the shift length is set to 1. The training and test data are processed to be in a three-dimensional format for input to the models.
  2. Six deep learning models are built: CNN, LSTM, Stacked LSTM, Bi-LSTM, GRU, and a hybrid model combining CNN and LSTM.
  3. Convergence charts and evaluation of test data predictions are plotted. Each model has an R2 higher than 0.85, with Bi-LSTM achieving an R2 of 0.89 and RMSE of 13.5.?

機器學習模型所用模塊:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import random
import warnings
warnings.filterwarnings('ignore')


from sklearn.metrics import mean_squared_error, r2_score,mean_absolute_error
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler,MinMaxScaler


from sklearn.linear_model import LinearRegression
from sklearn.svm import SVR
from sklearn.ensemble import RandomForestRegressor,ExtraTreesRegressor
from sklearn.neighbors import KNeighborsRegressor
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor

結果如下:

深度學習所用模塊:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import random
import time
import warnings
warnings.filterwarnings('ignore')


from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler,MinMaxScaler
#from google.colab import drive
#drive.mount('/content/drive')


# model
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Conv1D
from tensorflow.keras.layers import BatchNormalization, Dropout
from tensorflow.keras.layers import TimeDistributed, Flatten
from tensorflow.keras.layers.experimental import preprocessing
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.callbacks import ReduceLROnPlateau,EarlyStopping

完整代碼可通過知乎學術咨詢獲得:

https://www.zhihu.com/consult/people/792359672131756032?isMe=1

Python環境下基于機器學習的NASA渦輪風扇發動機剩余使用壽命RUL預測

本例所用的數據集為C-MAPSS數據集,C-MAPSS數據集是美國NASA發布的渦輪風扇發動機數據集,其中包含不同工作條件和故障模式下渦輪風扇發動機多源性能的退化數據,共有 4 個子數據集,每個子集又可分為訓練集、 測試集和RUL標簽。其中,訓練集包含航空發動機從開始運行到發生故障的所有狀態參數;測試集包含一定數量發動機從開始運行到發生故障前某一時間點的全部狀態參數;RUL標簽記錄測試集中發動機的 RUL 值,可用于評估模 型的RUL預測能力。C-MAPSS數據集包含的基本信息如下:

本例只采用FD001子數據集:

關于python的集成環境,我一般Anaconda 和 winpython 都用,windows下主要用Winpython,IDE為spyder(類MATLAB界面)。

正如peng wang老師所說

winpython, anaconda 哪個更好?- peng wang的回答 - 知乎 https://www.zhihu.com/question/27615938/answer/71207511

winpython脫胎于pythonxy,面向科學計算,兼顧數據分析與挖掘;Anaconda主要面向數據分析與挖掘方面,在大數據處理方面有自己特色的一些包;winpython強調便攜性,被做成綠色軟件,不寫入注冊表,安裝其實就是解壓到某個文件夾,移動文件夾甚至放到U盤里在其他電腦上也能用;Anaconda則算是傳統的軟件模式。winpython是由個人維護;Anaconda由數據分析服務公司維護,意味著Winpython在很多方面都從簡,而Anaconda會提供一些人性化設置。Winpython 只能在windows上用,Anaconda則有linux的版本。

拋開軟件包的差異,我個人也推薦初學者用winpython,正因為其簡單,問題也少點,由于便攜性的特點系統壞了,重裝后也能直接用。

請直接安裝、使用winPython:WinPython download因為很多模塊以及集成的模塊

可以選擇版本,不一定要用最新版本,否則可能出現不兼容問題。

下載、解壓后如下

打開spyder就可以用了。

采用8種機器學習方法對NASA渦輪風扇發動機進行剩余使用壽命RUL預測,8種方法分別為:Linear Regression,SVM regression,Decision Tree regression,KNN model,Random Forest,Gradient Boosting Regressor,Voting Regressor,ANN Model。

首先導入相關模塊

import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt 
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.svm import SVR
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, r2_score
import tensorflow as tf
from tensorflow.keras.layers import Dense

版本如下:

tensorflow=2.8.0
keras=2.8.0
sklearn=1.0.2

導入數據

path = ''


# define column names 
col_names=["unit_nb","time_cycle"]+["set_1","set_2","set_3"] + [f's_{i}' for i in range(1,22)]


# read data

df_train = train_data = pd.read_csv(path+"train_FD001.txt", index_col=False, 
                                    sep= "\s+", header = None,nam
es=col_names )

df_test和y_test同理導入,看一下訓練樣本

df_train.head()

進行探索性數據分析

df_train[col_names[1:]].describe().T

數據可視化分析:

sns.set_style("darkgrid")
plt.figure(figsize=(16,10))
k = 1
for col in col_names[2:] :
    plt.subplot(6,4,k)
    sns.histplot(df_train[col],color='Green')
    k+=1
plt.tight_layout()
plt.show()

一種基于學習的電池壽命預測(Python)-AI.x社區

def remaining_useful_life(df):
    # Get the total number of cycles for each unit
    grouped_by_unit = df.groupby(by="unit_nb")
    max_cycle = grouped_by_unit["time_cycle"].max()
    
    # Merge the max cycle back into the original frame
    result_frame = df.merge(max_cycle.to_frame(name='max_cycle'), left_notallow='unit_nb', right_index=True)
    
    # Calculate remaining useful life for each row
    remaining_useful_life = result_frame["max_cycle"] - result_frame["time_cycle"]
    result_frame["RUL"] = remaining_useful_life
    
    # drop max_cycle as it's no longer needed
    result_frame = result_frame.drop("max_cycle", axis=1)
    return result_frame
df_train = remaining_useful_life(df_train)
df_train.head()

繪制最大RUL的直方圖分布

plt.figure(figsize=(10,5))
sns.histplot(max_ruls.RUL, color='r')
plt.xlabel('RUL')
plt.ylabel('Frequency')
plt.axvline(x=max_ruls.RUL.mean(), ls='--',color='k',label=f'mean={max_ruls.RUL.mean()}')
plt.axvline(x=max_ruls.RUL.median(),color='b',label=f'median={max_ruls.RUL.median()}')
plt.legend()
plt.show()

plt.figure(figsize=(20, 8))

cor_matrix = df_train.corr()

heatmap = sns.heatmap(cor_matrix, vmin=-1, vmax=1, annot=True)
heatmap.set_title('Correlation Heatmap', fnotallow={'fontsize':12}, pad=10);

添加圖片注釋,不超過 140 字(可選)

col = df_train.describe().columns
#we drop colummns with standard deviation is less than 0.0001
sensors_to_drop = list(col[df_train.describe().loc['std']<0.001]) + ['s_14']
print(sensors_to_drop)
# 
df_train.drop(sensors_to_drop,axis=1,inplace=True)
df_test.drop(sensors_to_drop,axis=1,inplace=True)


sns.set_style("darkgrid")
fig, axs = plt.subplots(4,4, figsize=(25, 18), facecolor='w', edgecolor='k')
fig.subplots_adjust(hspace = .22, wspace=.2)
i=0
axs = axs.ravel()
index = list(df_train.unit_nb.unique())
for sensor in df_train.columns[1:-1]:
    for idx in index[1:-1:15]:
        axs[i].plot('RUL', sensor,data=df_train[df_train.unit_nb==idx])
        
    axs[i].set_xlim(350,0)
    axs[i].set(xticks=np.arange(0, 350, 25))
    axs[i].set_ylabel(sensor)
    axs[i].set_xlabel('Remaining Use Life')
    i=i+1

X_train = df_train[df_train.columns[3:-1]]
y_train = df_train.RUL
X_test = df_test.groupby('unit_nb').last().reset_index()[df_train.columns[3:-1]]


y_train = y_train.clip(upper=155)


# create evalute function for train and test data
def evaluate(y_true, y_hat):
    RMSE = np.sqrt(mean_squared_error(y_true, y_hat))
    R2_score = r2_score(y_true, y_hat)
    return [RMSE,R2_score];


#Make Dataframe which will contain results
Results = pd.DataFrame(columns=['RMSE-Train','R2-Train','RMSE-Test','R

2-Test','time-train (s)'])

訓練線性回歸模型

import time
Sc = StandardScaler()
X_train1 = Sc.fit_transform(X_train)
X_test1 = Sc.transform(X_test)
# create and fit model
start = time.time()
lm = LinearRegression()
lm.fit(X_train1, y_train)
end_fit = time.time()- start
# predict and evaluate
y_pred_train = lm.predict(X_train1)
y_pred_test = lm.predict(X_test1)
Results.loc['LR']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results


def plot_prediction(y_test,y_pred_test,score):
    plt.style.use("ggplot")  
    fig, ax = plt.subplots(1, 2, figsize=(17, 4), gridspec_kw={'width_ratios': [1.2, 3]})
    fig.subplots_adjust(wspace=.12)
    ax[0].plot([min(y_test),max(y_test)],
         [min(y_test),max(y_test)],lw=3,c='r')
    ax[0].scatter(y_test,y_pred_test,lw=3,c='g')
    ax[0].annotate(text=('RMSE: ' + "{:.2f}".format(score[0]) +'\n' +
                  'R2: ' + "{:.2%}".format(score[1])), xy=(0,140), size='large');
    ax[0].set_title('Actual vs predicted RUL')
    ax[0].set_xlabel('Actual')
    ax[0].set_ylabel('Predicted');
    
    ax[1].plot(range(0,100),y_test,lw=2,c='r',label = 'actual')
    ax[1].plot(range(0,100),y_pred_test,lw=1,ls='--', c='b',label = 'prediction')
    ax[1].legend()


    ax[1].set_title('Actual vs predicted RUL')
    ax[1].set_xlabel('Engine num')
    ax[1].set_ylabel('RUL');


plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test))

訓練支持向量機模型

# create and fit model
start = time.time()
svr = SVR(kernel="rbf", gamma=0.25, epsilnotallow=0.05)
svr.fit(X_train1, y_train)
end_fit = time.time()-start 
# predict and evaluate
y_pred_train = svr.predict(X_train1)
y_pred_test = svr.predict(X_test1)
Results.loc['SVM']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results


plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test))

訓練決策樹模型

start=time.time()
dtr = DecisionTreeRegressor(random_state=42, max_features='sqrt', max_depth=10, min_samples_split=10)
dtr.fit(X_train1, y_train)
end_fit =time.time()-start
# predict and evaluate
y_pred_train = dtr.predict(X_train1)
y_pred_test = dtr.predict(X_test1)
Results.loc['DTree']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results


plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test

))

一種基于學習的電池壽命預測(Python)-AI.x社區

訓練KNN模型

from sklearn.neighbors import KNeighborsRegressor
# Evaluating on Train Data Set
start = time.time()
Kneigh = KNeighborsRegressor(n_neighbors=7)
Kneigh.fit(X_train1, y_train)
end_fit =time.time()-start
# predict and evaluate
y_pred_train = Kneigh.predict(X_train1)
y_pred_test = Kneigh.predict(X_test1)
Results.loc['KNeigh']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results


plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test))

訓練隨機森林模型

start = time.time()
rf = RandomForestRegressor(n_jobs=-1, n_estimators=130,max_features='sqrt', min_samples_split= 2, max_depth=10, random_state=42)
rf.fit(X_train1, y_train)
y_hat_train1 = rf.predict(X_train1)
end_fit = time.time()-start
# predict and evaluate
y_pred_train = rf.predict(X_train1)
y_pred_test = rf.predict(X_test1)
Results.loc['RF']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results

plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test))

一種基于學習的電池壽命預測(Python)-AI.x社區

訓練Gradient Boosting Regressor模型

from sklearn.ensemble import GradientBoostingRegressor
# Evaluating on Train Data Set
start = time.time()
xgb_r = GradientBoostingRegressor(n_estimators=45, max_depth=10, min_samples_leaf=7, max_features='sqrt', random_state=42,learning_rate=0.11)
xgb_r.fit(X_train1, y_train)
end_fit =time.time()-start
# predict and evaluate
y_pred_train = xgb_r.predict(X_train1)
y_pred_test = xgb_r.predict(X_test1)
Results.loc['XGboost']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results


plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test))

訓練Voting Regressor模型

from sklearn.ensemble import VotingRegressor
start=time.time()
Vot_R = VotingRegressor([("rf", rf), ("xgb", xgb_r)],weights=[1.5,1],n_jobs=-1)
Vot_R.fit(X_train1, y_train)
end_fit =time.time()-start
# predict and evaluate
y_pred_train = Vot_R.predict(X_train1)
y_pred_test = Vot_R.predict(X_test1)
Results.loc['VotingR']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results


plot_prediction(y_test.RUL,y_pred_test,evaluate(y_test, y_pred_test))

訓練ANN模型

star=time.time()
model = tf.keras.models.Sequential()
model.add(Dense(32, activatinotallow='relu'))
model.add(Dense(64, activatinotallow='relu'))
model.add(Dense(128, activatinotallow='relu'))
model.add(Dense(128, activatinotallow='relu'))
model.add(Dense(1, activatinotallow='linear'))
model.compile(loss= 'msle', optimizer='adam', metrics=['msle'])
history = model.fit(x=X_train1,y=y_train, epochs = 40, batch_size = 64)
end_fit = time.time()-star


# predict and evaluate
y_pred_train = model.predict(X_train1)
y_pred_test = model.predict(X_test1)
Results.loc['ANN']=evaluate(y_train, y_pred_train)+evaluate(y_test, y_pred_test)+[end_fit]
Results

一種基于學習的電池壽命預測(Python)-AI.x社區

本文轉載自??高斯的手稿??

收藏
回復
舉報
回復
相關推薦
手机在线国产视频| 日本公妇乱淫免费视频一区三区| 日本中文在线视频| 午夜日韩影院| 精品成人av一区| 日本视频一区二区不卡| 91资源在线视频| 亚洲午夜精品一区 二区 三区| 91精品国产色综合久久| 国产精品无码免费专区午夜| 看电影就来5566av视频在线播放| 精品综合免费视频观看| 欧美国产日产韩国视频| 天天插天天射天天干| 国产精品99| 亚洲一区二区三区美女| 日韩成人在线资源| 精品久久久无码中文字幕| 中文久久精品| 日韩在线小视频| 在线观看一区二区三区四区| 中文字幕在线官网| 中文字幕一区二区三区视频| 国产精品久久7| 中文字幕在线观看免费| 在线综合视频| 久久色精品视频| 精品久久久久久中文字幕人妻最新| 四虎国产精品免费久久5151| 欧美日韩国产精品一区二区不卡中文| 亚洲二区三区四区| 手机福利在线| 久久成人麻豆午夜电影| 欧美怡春院一区二区三区| h色网站在线观看| 精品成av人一区二区三区| 亚洲二区中文字幕| 不卡的在线视频| 国产经典一区| 色综合色狠狠综合色| 日产精品久久久久久久蜜臀| 看黄网站在线| 国产精品天美传媒沈樵| 久久久国产精品一区二区三区| www.天堂av.com| 九九在线精品视频| 国产精品视频999| 91青青草视频| 亚洲女人av| 国语自产精品视频在免费| 成人黄色短视频| 欧洲grand老妇人| 亚洲天堂久久av| 毛茸茸多毛bbb毛多视频| 亚洲视频一起| 欧美mv和日韩mv国产网站| 亚洲精品中文字幕乱码无线| 久久久久久一区二区三区四区别墅| 色呦呦国产精品| 草草久久久无码国产专区| 福利成人导航| 亚洲精品v日韩精品| 一区视频二区视频| 麻豆av在线免费看| 中文字幕一区二区三区av| 亚洲一区三区| 精品视频在线一区二区| 亚洲欧洲日韩av| 在线观看成人一级片| 亚洲s色大片| 国产精品久久三| 一区二区三区的久久的视频| √天堂资源地址在线官网| 国产女主播在线一区二区| 日韩欧美一区二区三区久久婷婷| 国产在线观看精品一区| 久久久综合精品| 日韩aⅴ视频一区二区三区| 国产三区四区在线观看| 国产精品天干天干在观线 | 国产精品一区二区三区美女| 亚洲变态欧美另类捆绑| 性色av蜜臀av色欲av| 在线亚洲a色| 中文字幕日韩av综合精品| 国产aaaaaaaaa| 7777久久香蕉成人影院| 久久久久亚洲精品成人网小说| 国产精品99精品| 在线视频日韩| 国产精品久久久久久影视| 一级黄色a视频| 国产精品亚洲成人| 久久偷窥视频| 免费av网站在线看| 亚洲一区二区在线播放相泽| 日本精品一区在线观看| 成人全视频在线观看在线播放高清 | 青青操视频在线播放| 国产欧美一区二区色老头| 国产精品第七影院| xxxx18国产| 久久久久88色偷偷免费| 亚洲免费av网| 免费毛片b在线观看| 日本乱码高清不卡字幕| 中文字幕国产高清| 丝袜av一区| 久久精品中文字幕免费mv| 日本少妇xxxx动漫| 久久精品国产精品亚洲综合| 国产在线精品二区| 男人和女人做事情在线视频网站免费观看| 亚洲精品伦理在线| 成年人小视频网站| 视频精品一区二区三区| 亚洲午夜久久久影院| 欧美日韩国产精品一区二区三区| 欧美一级久久| yy111111少妇影院日韩夜片| 国产有码在线| 亚洲v日本v欧美v久久精品| 天天色综合社区| 亚洲人成精品久久久| 久久综合国产精品台湾中文娱乐网 | 成人羞羞网站入口免费| 欧美另类高清videos| 亚洲av无码不卡| 懂色av中文一区二区三区| 亚洲成人a**址| 日韩伦理精品| 亚洲第一视频网站| 日本一级二级视频| 麻豆精品视频在线观看视频| 免费看污久久久| 草美女在线观看| 日韩午夜小视频| 顶级黑人搡bbw搡bbbb搡| 一区二区高清| 91精品国产综合久久久久久丝袜| 91在线高清| 欧美色倩网站大全免费| 亚洲自拍偷拍一区二区| 中文国产一区| 国内精品二区| 91桃色在线| 精品国产1区二区| 免费毛片在线播放免费| 国产福利91精品一区| 亚洲午夜在线观看| 日本一区免费网站| 国产午夜精品一区理论片飘花| 制服丝袜中文字幕一区| 97人妻精品一区二区三区免费| 欧美另类综合| av一本久道久久波多野结衣| 先锋成人av| 欧美本精品男人aⅴ天堂| 四虎免费在线视频| 国产精品亚洲人在线观看| www亚洲国产| 黄色成人小视频| 日韩中文在线中文网在线观看| 涩涩视频在线观看| 国产精品福利电影一区二区三区四区| 国产高潮免费视频| 欧美mv日韩| 亚洲一区二区三区四区在线播放| 国产精品刘玥久久一区| 在线播放欧美女士性生活| 欧美做爰啪啪xxxⅹ性| 国产一区欧美一区| 日韩中文字幕在线不卡| 一区二区三区国产好| 久久久久久12| 色在线免费视频| 色婷婷精品大在线视频| 五月天精品在线| 久久99九九99精品| 男人添女人下部视频免费| 国产成人精品福利| 97成人在线视频| 精品福利视频导航大全| 欧美日韩免费观看一区三区| 青青草国产在线观看| 成人av网站在线观看| 亚洲熟妇av一区二区三区| 欧美日韩国产在线观看网站| 亚洲va欧美va在线观看| av资源在线| 久久久久久久久久久久电影| 亚洲精品国产拍免费91在线| 日日夜夜操视频| 成人欧美一区二区三区1314| 黄色av电影网站| 日日夜夜免费精品| 日韩欧美视频免费在线观看| 九一国产精品| 亚洲qvod图片区电影| 春色校园综合激情亚洲| 这里只有精品久久| 狠狠综合久久av一区二区| 日韩欧美在线字幕| 午夜国产福利视频| jizz一区二区| 日韩在线一区视频| 日韩午夜高潮| 9l视频自拍9l视频自拍| 亚洲人成网www| 成人国产1314www色视频| 二区三区不卡| 美女性感视频久久久| 久久视频www| 日韩欧美激情四射| 日韩中文字幕高清| 亚洲成人免费影院| 香蕉久久久久久久| 91丝袜呻吟高潮美腿白嫩在线观看| 国产aaaaa毛片| 影音先锋亚洲一区| 亚洲AV无码成人精品一区| 小说区图片区色综合区| 春色成人在线视频| 亚洲午夜国产成人| 国产成人综合一区二区三区| 国产美女情趣调教h一区二区| 一个人www欧美| 无码精品在线观看| 精品少妇一区二区三区在线视频| 91久久久久久久久久久久| 欧美日韩中文字幕在线视频| 久草视频免费播放| 亚洲欧美自拍偷拍| 摸摸摸bbb毛毛毛片| 99国产精品久久久久久久久久久 | 亚洲国产日韩欧美在线动漫 | www.av在线.com| 国产精品福利一区| 黄色性视频网站| 石原莉奈在线亚洲二区| 在线观看国产一区| 狠狠做六月爱婷婷综合aⅴ| 97久久人人超碰caoprom欧美| 日韩av电影资源网| 欧美一区二区三区免费观看| caoporn97在线视频| 亚洲热线99精品视频| a毛片在线免费观看| 3d动漫精品啪啪一区二区竹菊 | 分分操这里只有精品| 婷婷亚洲综合| 麻豆久久久av免费| 亚洲一区二区电影| 99久久精品免费看国产一区二区三区 | 国产精品免费看片| 少妇毛片一区二区三区| av一区二区三区| 国产乱码一区二区三区四区| 麻豆freexxxx性91精品| 欧美视频第一区| 日日噜噜夜夜狠狠视频欧美人 | 午夜久久黄色| 国产日本欧美在线| 精品国内自产拍在线观看视频| 欧美日韩一区二区三区在线观看免| 欧美网色网址| 国产高清精品一区二区三区| 婷婷综合国产| 国产精品视频福利| 福利片一区二区| 激情视频一区二区| 国产在线视频2019最新视频| 国内欧美日韩| 国产欧美精品一区二区| 亚洲一区二区小说| 亚洲字幕一区二区| 国产福利一区二区三区在线播放| 国产精品视频资源| 欧美成人毛片| 国产精品一区二区三区毛片淫片| www.26天天久久天堂| 91精品国产综合久久久久久蜜臀 | 久久99精品久久久久久青青91| 黄色免费网站在线| 欧美国产日产韩国视频| 国产伦子伦对白在线播放观看| 98视频在线噜噜噜国产| 乱插在线www| 日韩av免费看| 日本免费一区二区三区等视频| 91免费在线视频网站| gogo人体一区| 蜜桃视频成人| 欧美国产美女| 成人免费视频91| 久久精品官网| 欧美一级视频在线| 不卡一区二区三区四区| 丰满少妇一区二区| 国产精品久久久久永久免费观看| 久久午夜无码鲁丝片午夜精品| 亚洲福利国产精品| 69国产精品视频免费观看| 色婷婷久久99综合精品jk白丝| 国产又黄又粗又猛又爽| 精品毛片乱码1区2区3区| 三级视频在线| 欧美大胆a视频| 日韩电影免费观| 99在线视频播放| 99久久精品网| 农村妇女精品一二区| 国产精品综合在线视频| 潮喷失禁大喷水aⅴ无码| 亚洲1区2区3区视频| 91美女免费看| 欧美va在线播放| av在线免费观看网站| 欧美富婆性猛交| 国产激情精品一区二区三区| 欧美三级电影在线播放| 欧美破处大片在线视频| xxx国产在线观看| 2022国产精品视频| av最新在线观看| 欧美午夜电影在线播放| 熟妇高潮一区二区三区| 久久91亚洲人成电影网站| 99久久精品一区二区成人| 国产在线精品一区二区中文| 久久久久蜜桃| 美女黄色片视频| www国产精品av| 国产微拍精品一区| 欧美精品一区二区三区蜜桃视频 | 中文字幕一区日韩精品| 亚洲美女搞黄| 老司机精品视频导航| 免费毛片视频网站| 午夜欧美在线一二页| 后进极品白嫩翘臀在线视频| 不卡av电影院| 四虎在线精品| 天堂av免费看| 毛片基地黄久久久久久天堂| 无码一区二区三区在线| 婷婷久久综合九色国产成人 | 欧美猛交免费看| 8x8ⅹ拨牐拨牐拨牐在线观看| 91在线观看免费| 欧美电影《睫毛膏》| 人妻有码中文字幕| 波多野洁衣一区| 国产奶水涨喷在线播放| 91麻豆精品国产自产在线观看一区 | 国产精品日韩在线一区| 免费短视频成人日韩| 欧美 日韩精品| 91麻豆产精品久久久久久| 久久黄色免费网站| 日韩一区和二区| a级片国产精品自在拍在线播放| 成人福利网站在线观看| 欧美电影《轻佻寡妇》| 亚洲色图偷拍视频| 亚洲视频一二三区| 精品人妻少妇AV无码专区| 久久亚洲一区二区三区四区五区高| 成人欧美大片| 一区二区日本伦理| 激情欧美一区二区三区在线观看| 久草网站在线观看| 日韩免费视频一区| 俄罗斯一级**毛片在线播放| www 成人av com| 国内久久精品| 国产黄色三级网站| 欧美性色视频在线| 尤物视频在线免费观看| 国产精品视频免费在线观看| 国产精品久久久乱弄| 五月天婷婷亚洲| 中文字幕欧美日韩一区| 亚洲中文字幕在线观看| 久久天天躁夜夜躁狠狠躁2022| 国产精品qvod| 国产aaa一级片| 国产午夜精品福利| 国产乱码精品一区二三区蜜臂| 伊人久久免费视频| 曰本一区二区| 国产乱子伦精品无码专区| 久久精品人人做人人爽97 | 欧美丝袜丝交足nylons| 日本中文字幕伦在线观看| 国产精品日韩在线观看| 欧美日韩网站| a级大片在线观看| 精品国产一二三区| 日本免费久久|