今天內容包括建立乙個二分類邏輯回歸神經網路,並將損失函式和準確度進行視覺化
import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv(
'credit_a.csv'
, header=
none
)# 因為沒有表頭所以加入header=none
# print(data)
x = data.iloc[:,
:-1]
y = data.iloc[:,
[-1]
].replace(-1
,0)model = tf.keras.sequential(
)model.add(tf.keras.layers.dense(
4, input_shape=(15
,), activation=
'relu'))
model.add(tf.keras.layers.dense(
4, activation=
'relu'))
# 第二層開始不寫輸入引數shape,因為系統會根據上一層自動推斷
model.add(tf.keras.layers.dense(
1, activation=
'sigmoid'))
# model.summary()
model.
compile
(optimizer=
'adam'
, loss=
'binary_crossentropy'
, metrics=
['acc'])
history = model.fit(x, y, epochs=
100)
# print(history.history.keys())
plt.plot(history.epoch, history.history.get(
'loss'))
plt.show(
)plt.plot(history.epoch, history.history.get(
'acc'))
plt.show(
)
data = pd.read_csv(
'credit_a.csv'
, header=
none
)# 因為沒有表頭所以加入header=none
# 第二層開始不寫輸入引數shape,因為系統會根據上一層自動推斷
model.add(tf.keras.layers.dense(
1, activation=
'sigmoid'))
model.summary(
)#顯示神經網路
這次建立乙個兩層隱藏層的神經網路,每一次4個神經元,因為是邏輯回歸,所以最後一層的啟用函式用的是sigmoid
開始訓練了
因為是二分類邏輯回歸,所以損失函式選擇loss=『binary_crossentropy』
metrics=[『acc』]加入這個函式,可以顯示準確度
最後的訓練結果,hahah這麼低,畢竟只有10個資料
print
(history.history.keys(
))
訓練過程history.history是乙個字典變數,用keys()得到它的keys,可以看到有loss和acc
將損失函式視覺化
將準確度視覺化,hahha不要在意結果
NG 邏輯回歸 二分類
import time import numpy as np import pandas as pd import matplotlib.pyplot as plt a pd.read table 01.txt header none,usecols 0,1,2 插入一列 1 a.insert 0,...
應用廣泛的二分類演算法 邏輯回歸
對問題劃分層次,並利用非線性變換和線性模型的組合,將未知的複雜問題分解為已知的簡單問題。其原理是將樣本的特徵和樣本發生的概率聯絡起來,即,的是樣本發生的概率是多少。由於概率是乙個數,因此被叫做 邏輯回歸 在回歸問題上再多做一步,就可以作為分類演算法來使用了。邏輯回歸只能解決二分類問題,如果是多分類問...
2 簡單的二分類問題 邏輯回歸
1 資料的分類 結構化資料,可以用 表達描述的資料,計算機對於結構化資料有遠超人類的計算能力 非結構化資料 例如影象,聲音 文字序列等無法直接描述的資料,人類對於非結構化資料天生具有超強的理解能力 2 sigmoid函式 二分類問題分類結果的表達,一般輸出為屬於某一類的概率。在神經網路中,我們不能保...