pandas
中的iloc
方法
在對csv
檔案進行讀取的時候,使用iloc
方法比較方便,如:對這麼乙個資料進行讀取:
0,30.83,0,0,0,9,0,1.25,0,0,1,1,0,202,0,-1
1,58.67,4.46,0,0,8,1,3.04,0,0,6,1,0,43,560,-1
1,24.5,0.5,0,0,8,1,1.5,0,1,0,1,0,280,824,-1
0,27.83,1.54,0,0,9,0,3.75,0,0,5,0,0,100,3,-1
0,20.17,5.625,0,0,9,0,1.71,0,1,0,1,2,120,0,-1
...
只需要,這樣:
import pandas as pd
datas = pd.read_csv(
"credit-a.csv"
, header=
none
)# 注意到沒有表頭
此時,可以結合iloc
來進行對類別的統計,即最後一列:
datas.iloc[:,
-1].value_counts(
)
iloc
的用法,iloc[[行], [列]]
其中的行的列表表示所要取的行的範圍,列的列表同理。
import tensorflow as tf
import pandas as pd
import matplotlib.pyplot as plt
model = tf.keras.sequential(
)model.add(tf.keras.layers.dense(
4, input_shape=(15
,), activation=
"relu"))
model.add(tf.keras.layers.dense(
1, input_shape=(4
,), activation=
"sigmoid"))
model.
compile
(optimizer=
"adam"
, loss=
"binary_crossentropy"
, metrics=
['accuracy'])
datas = pd.read_csv(
"credit-a.csv"
, header=
none
)x = datas.iloc[:,
0:-1
]y = datas.iloc[:,
-1].replace(-1
,0)his = model.fit(x, y, epochs=
500)
x_test = datas.iloc[:9
,0:-
1]y_test = datas.iloc[:9
,-1]
y_predict = model.predict(x_test)
注意到使用的是binary_crossentropy
作為損失函式,最後的輸出層的啟用函式使用的是sigmoid
啟用函式。
可以繪製下loss
的變化過程:
繪製下accuracy
在訓練過程中的變化:
plt.plot(his.epoch, his.history[
'accuracy'
])
resu =
for predict in y_predict:[0
,1],size=
1,p =[1
-predict[0]
, predict[0]
])[0
])print
(resu)
而真實值,如下圖:
上面在訓練中將-1
處理為了0
,故這裡真實值是全0
。
但,其實說明不了問題的,因為直接使用了訓練資料來測試,無疑是不對的。
不妨用iloc
那個方法來切兩半,一半訓練0.8
,一半測試0.2
。當然,這裡不做了。
邏輯回歸問題總結
1.簡介 邏輯回歸是面試當中非常喜歡問到的乙個機器學習演算法,因為表面上看邏輯回歸形式上很簡單,很好掌握,但是一問起來就容易懵逼。所以在面試的時候給大家的第乙個建議不要說自己精通邏輯回歸,非常容易被問倒,從而減分。下面總結了一些平常我在作為面試官面試別人和被別人面試的時候,經常遇到的一些問題。2.正...
線性回歸和邏輯回歸常見問題
問題 邏輯回歸常見問題 1.邏輯斯蒂回歸推導 2.簡述一下線性回歸 3.為什麼邏輯斯特回歸中使用最大似然函式求得的引數是最優可能的引數值?最大似然估計的核心是讓所取樣的樣本出現的概率最大,利用已知的樣本情況,反推使其最有可能發生的模型引數。對於邏輯回歸,樣本已經取樣了,使其發生概率最大才是符合邏輯的...
邏輯回歸與過擬合問題
分類問題 classification 是機器學習要解決的另一大類問題,這裡用到的方法是邏輯回歸 logistic regression 也是目前機器學習領域應用最廣泛的方法。先從基本的二分類問題入手,即輸出 y 只有0,1兩種結果。對於分類問題,只有離散有限的取值,顯而易見的,用線性回歸的表示方法...