結合《機器學習實戰》和泰迪杯師資培訓,使用神經網路完成了鳶尾花問題,將**完善並記錄下來。
書中對構建 ann 的兩種方法做了詳細解釋,還有在編譯模型時如何選擇損失函式和優化器,以及在不同層啟用函式的選擇。
構建人工神經網路的兩種方法如下:
# 第一種方法
model = tf.keras.sequential(
[ tf.keras.layers.dense(
10, input_shape=(4
,), activation=
'relu'),
tf.keras.layers.dense(
3, activation=
'softmax')]
)
# 第二種方法
model = tf.keras.sequential(
)model.add(tf.keras.layers.dense(
10, input_shape=(4
,), activation=
'relu'))
model.add(tf.keras.layers.dense(
3, activation=
'softmax'
))
for i in
range
(x_test.shape[0]
):pre = res[i]
.argmax(
)print
('**值:'
, pre,
'\t真實值:'
, y_test[i]
)
而model
物件其實在**的時候有乙個predict_classes()
方法,可以直接返回**的類別。
那麼對於神經網路的學習,我使用鳶尾花資料集對整個流程和相關的視覺化**進行了完善和補充,建立了如下神經網路學習案例。
下面為 「神經網路學習案例:鳶尾花分類問題」 完整**:
# 匯入第三方庫
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import tensorflow as tf
# 讀取鳶尾花資料集
iris = load_iris(
)# 劃分訓練集和測試集
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=
0.2, random_state=22)
# 構建人工神經網路
model = tf.keras.sequential(
)model.add(tf.keras.layers.dense(
10, input_shape=(4
,), activation=
'relu'))
model.add(tf.keras.layers.dense(
3, activation=
'softmax'))
# 顯示模型的所有層
model.summary(
)# 編譯模型
# 指定損失函式,優化器,評價指標
# 多分類問題loss使用交叉熵,評價指標為準確性
model.
compile
(loss=
"sparse_categorical_crossentropy"
, optimizer=
"adam"
, metrics=
"accuracy"
)history = model.fit(x_train, y_train, epochs=
1000
, validation_data=
(x_test, y_test)
)# 繪製訓練曲線
pd.dataframe(history.history)
.plot(figsize=(8
,5))
plt.grid(
true
)plt.gca(
).set_ylim(0,
1)plt.show(
)# 模型**
y_pre_proba = model.predict(x_test)
# 返回每個類別的概率
y_pre = model.predict_classes(x_test)
# 返回最大概率的類別
# 模型評分
scores =
for i in
range
(len
(y_test)):
if y_pre[i]
== y_test[i]:1
)else:0
)accuracy =
sum(scores)
/len
(scores)
神經網路鳶尾花分類
import tensorflow as tf import numpy as np from sklearn import datasets import pandas as pd import matplotlib.pyplot as plt 從sklearn包datasets中讀入資料集 返回...
實驗 鳶尾花分類 簡單的神經網路
import torch from torch import nnfrom sklearn.datasets import load iris from sklearn.model selection import train test split import numpy as np import...
tensorflow 神經網路實現鳶尾花分類
主要步驟 1.準備資料 2.搭建網路 3.引數優化 4.測試效果 import tensorflow as tf from sklearn import datasets from matplotlib import pyplot as plt import numpy as np 匯入輸入特徵和標...