第乙個多層感知器例項 印第安人糖尿病診斷

2021-08-21 11:19:38 字數 1608 閱讀 9229

多層感知器是最簡單的神經網路模型,用於處理機器學習中的分類與回歸問題。

第乙個案例:印第安人糖尿病診斷

#匯入必需的包

import tensorflow

import keras

from keras.models import sequential

from keras.layers import dense

import numpy as np

#使用固定隨機數種子初始化隨機數生成器

np.random.seed(7)

(1) 匯入資料

#匯入資料

dataset = np.loadtxt('pima-indians-diabetes.csv',delimiter=',')

#分割輸入變數x和輸出變數y

x = dataset[:,0:8]

y = dataset[:,8]

(2) 定義模型

#建立模型

model = sequential()

#可視層,8個輸入變數,與資料的維度一致

#dense類定義完全連線層

#通常採用sigmoid和tanh作為啟用函式,這是構建所有層的首選。現在的研究表明,使用relu作為啟用函式,可以得到更好的效能

#第乙個隱藏層有12個神經元

model.add(dense(12,input_dim=8,activation='relu'))

#第二個隱藏層有8個神經元

model.add(dense(8,activation='relu'))

#最後輸出層有1個神經元**資料結構。二分類的輸出層採用sigmoid作為啟用函式

model.add(dense(1,activation='sigmoid'))

(3) 編譯模型

#編譯模型

#對於二進位制分類問題的對數損失被定義為二進位制交叉熵

#使用有效的梯度下降演算法adam作為優化器

model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

(4) 訓練模型

#訓練模型

#引數可以通過試驗和錯誤實驗來選擇合適的值

model.fit(x=x,y=y,epochs=150,batch_size=10)

(5) 評估模型

#評估模型

scores = model.evaluate(x=x,y=y)

print('\n%s:%.2f%%' %(model.metrics_names[1],scores[1]*100))

目標函式的常見選項:

mse:**值和真實值之間的均方誤差。

binary cross-entropy:二分對數損失。

categorical cross-entropy:多分類對數損失

該目標函式適用於多分類標籤**。它也是與啟用函式softmax關聯的預設選擇。

常見的效能評估指標:

accuracy:準確率,針對**目標的**正確的比例。

precision:查準率,衡量多分類問題中多少選擇項是關聯正確的。

recall:查全率,衡量多分類問題中多少關聯正確的資料被選出。

第乙個Spring AOP例項

1.介面 package aop2 public inte ce waiter2.target package aop2 author administrator public class waiter implements waiter override public void serveto s...

第乙個Spring AOP例項

1.新增spring core 和 aop jar包 2.新建student類 package com.chen public class student public void setname string name public void sayhello string name public ...

Zend Framwork 第乙個例項

建立 zf.bat create project d phpback zftest d phpback為全路徑 zftest 為專案名 將zend framwork libery 資料夾複製到專案的libery 中 其他配置完成後 開啟頁面 就可以看到zf的歡迎介面 連線資料庫 mysql db.a...