關於CWRU軸承數據集的分類

對CWRU數據集中12K採樣頻率下的驅動端軸承故障數據,電機近似轉速=1797的數據進行四分類。內圈故障、滾動體故障、外圈故障(中心方向@6:00)、正常

file name label
0.000-Normal.mat 0
0.007-Ball.mat 1
0.007-InnerRace.mat 2
0.007-OuterRace6.mat 3
0.014-Ball.mat 1
0.014-InnerRace.mat 2
0.014-OuterRace6.mat 3

讀取數據時,採樣率=400,訓練數據1824組,測試數據610組
epochs=100、batch size=32
結果在訓練集的識別率爲1,測試集的識別率爲0.9902

測試集結果

Normal Ball Inner Race Outer Race
Normal 153 0 0 0
Ball 0 153 0 0
Inner Race 153 0 146 0
Outer Race 153 0 6 152

Model

    model = Sequential()
    model.add(Conv1D(16, 16, activation='relu',
                     input_shape=(subsample, 1)))
    model.add(Conv1D(32, 8, activation='relu', padding="same"))
    model.add(MaxPooling1D(8))
    model.add(Conv1D(64, 4, activation='relu', padding="same"))
    model.add(Conv1D(64, 4, activation='relu', padding="same"))
    model.add(MaxPooling1D(4))
    model.add(Conv1D(256, 2, activation='relu', padding="same"))
    model.add(Conv1D(256, 2, activation='relu', padding="same"))
    model.add(MaxPooling1D(2))
    model.add(Conv1D(512, 1, activation='relu', padding="same"))
    model.add(Conv1D(512, 1, activation='relu', padding="same"))
    model.add(MaxPooling1D(1))

    model.add(GlobalAveragePooling1D())

    model.add(Dense(256, activation='relu'))
    model.add(Dropout(0.3))
    model.add(Dense(128, activation='relu'))
    model.add(Dropout(0.3))

    model.add(Dense(labels, activation='softmax'))

    opt = Adam(0.0002)

    model.compile(loss='categorical_crossentropy',
                  optimizer=opt, metrics=['accuracy'])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章