1. 程式人生 > >多層感知機-印第安人糖尿病診斷-基於keras的python學習筆記(一)

多層感知機-印第安人糖尿病診斷-基於keras的python學習筆記(一)

版權宣告:本文為博主原創文章,未經博主允許不得轉載。https://blog.csdn.net/weixin_44474718/article/details/86219792

函式解釋

np.random.seed()函式,每次執行程式碼時設定相同的seed,則每次生成的隨機數也相同,如果不設定seed,則每次生成的隨機數都會不一樣。例如:
在這裡插入圖片描述
本例子:
資料集為8個屬性和輸出結果一共9列,為二分類問題(糖尿病為1或非糖尿病為0)

輸出層(1個輸出)
隱藏層(8個神經元)
隱藏層(12個神經元)
可視層(8個輸入)

    from keras.models import Sequential
    from
keras.layers import Dense import numpy as np # 設定隨機數種子 np.random.seed(7) # 匯入資料 dataset = np.loadtxt('pima-indians-diabetes.csv', delimiter=',') # 分割輸入x和輸出Y x = dataset[:, 0 : 8] 中0 : 8為第0列到8-1=7列 x = dataset[:, 0 : 8] Y = dataset[:, 8] # 建立模型 model =
Sequential() #relu為啟用函式 model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) #==***sigmoid為啟用函式,二分類一般用這個***== model.add(Dense(1, activation='sigmoid')) # 編譯模型 #使用有效的梯度下降演算法adam作為優化器 model.compile(loss='binary_crossentropy'
, optimizer='adam', metrics=['accuracy']) # 訓練模型 #epochs 迭代次數 batch_size 批數 model.fit(x=x, y=Y, epochs=150, batch_size=10) # 評估模型 scores = model.evaluate(x=x, y=Y) print('\n%s : %.2f%%' % (model.metrics_names[1], scores[1]*100))

啟用函式:
sigmoid: 一般用於二分類
sgn: 單層神經網路
relu:多層神經網路,更容易收斂,預測效果好