深度學習03-keras實例介紹iris數據集+sklearn對比+模型結果分析

數據準備

導入數據

from sklearn import datasets
iris = datasets.load_iris()
type(iris)
iris.data#四個自變量
iris.target#目標變量

在這裏插入圖片描述
在這裏插入圖片描述

對變量進行標準化

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
irisZX = StandardScaler().fit_transform(iris.data)

在這裏插入圖片描述

使用sklearn擬合

#MLPClassifier默認爲shuffle=True 因此不需要事先打亂數據的順序
from sklearn.neural_network import MLPClassifier
clf = MLPClassifier(activation = 'logistic',hidden_layer_sizes = (5),
                    solver = 'lbfgs',random_state = 1)
clf.fit(irisZX,iris.target)  
clf.score(irisZX,iris.target)

擬合的score分數爲0.9933

keras方法

數據轉換

keras需要將因變量轉換爲啞變量

#將因變量轉換爲啞變量
from keras.utils import to_categorical
y = to_categorical(iris.target)
y[:5]

在這裏插入圖片描述

模型準備

直接上代碼,先導入需要的包,然後建立模型,這裏是順序模型然後用add添加層的方法。第一層輸入的尺寸爲4(包含四個自變量),輸出層爲5,激活函數爲sigmoid。第二層也就是輸出層,每個樣本需要輸出三個值,激活函數爲softmax,保證輸出結果的取值在[0,1]之間。

from keras.models import Sequential
from keras.layers import Dense

model = Sequential()
model.add(Dense(5,input_dim = 4,activation = 'sigmoid'))
model.add(Dense(3,activation = 'softmax'))#softmax保證輸出結果爲[0,1]
model.compile(loss = 'categorical_crossentropy',
              optimizer = 'rmsprop',
              metrics = ['accuracy'])

可以看一下模型描述
在這裏插入圖片描述

模型擬合及預測

下面直接添加fit擬合模型,可根據需要是否顯示日誌

model.fit(irisZX,y,epochs = 50)
model.fit(irisZX,y,epochs = 50,verbose = 0)
model.fit(irisZX,y,epochs = 50,verbose = 2)

在這裏插入圖片描述
看一下模型效果:結果【測試集損失函數,預測準確率】
在這裏插入圖片描述
模型預測:直接用predict函數
在這裏插入圖片描述

模型結構的可視化

history將模型的accuracy和loss存貯起來

hist = model.fit(irisZX,y,epochs = 50)
hist.history

plt.plot(hist.history['accuracy'])
plt.plot(hist.history['loss'])

#畫一起
plt.plot(hist.history['accuracy'])
ax2 = plt.gca().twinx()#使用第二Y軸
plt.plot(hist.history['loss'])

在這裏插入圖片描述

及時終止訓練

當達到一定的要求時,可以讓模型及時終止訓練。使用EarlyStopping 函數
在這裏插入圖片描述

from keras.callbacks import EarlyStopping 

stop = EarlyStopping(monitor = 'val_loss',min_delta = 0.1)
model.fit(irisZX,y,epochs = 500,
          validation_data = (irisZX,y),
          callbacks = [stop])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章