TensorFlow訓練Logistic回歸

2021-09-11 10:18:23 字數 1278 閱讀 5774

如下圖,可以清晰看到線性回歸和邏輯回歸的關係,乙個線性方程被邏輯方程歸一化後就成了邏輯回歸。.

對於二分類,輸出假如線性回歸模型為,則要將z轉成y,即y=g(z)。於是最直接的方式是用單位階躍函式來表示,即

如圖,

但階躍函式不連續,於是用sigmoid函式替代之,為

如圖,

則有,

即logistics函式,可化為,

此即為對數機率回歸模型,其中y看成是樣本x正例的概率,1-y則為樣本x負例的概率,則

現在要解決的問題是如何求得。對於給定樣本集,每個樣本出現的概率為,

其中為1或0。則樣本集出現的似然函式為

對數似然為:

求對數似然最大化的。其中通過求導沒辦法求得解,所以肯定要用迭代去逼近最優解,可以用梯度下降法或者牛頓法求的解。

import tensorflow as tf

from numpy import *

x_train = [[1.0, 2.0], [2.0, 1.0], [2.0, 3.0], [3.0, 5.0], [1.0, 3.0], [4.0, 2.0], [7.0, 3.0], [4.0, 5.0], [11.0, 3.0],

[8.0, 7.0]]

y_train = [1, 1, 0, 1, 0, 1, 0, 1, 0, 1]

y_train = mat(y_train)

theta = tf.variable(tf.zeros([2, 1]))

theta0 = tf.variable(tf.zeros([1, 1]))y = 1 / (1 + tf.exp(-tf.matmul(x_train, theta) + theta0))

loss = tf.reduce_mean(- y_train.reshape(-1, 1) * tf.log(y) - (1 - y_train.reshape(-1, 1)) * tf.log(1 - y))

train = tf.train.gradientdescentoptimizer(0.01).minimize(loss)

init = tf.initialize_all_variables()

sess = tf.session()

sess.run(init)

for step in range(1000):

sess.run(train)

print(step, sess.run(theta).flatten(), sess.run(theta0).flatten())複製**

Tensorflow訓練迴圈

def fit loop model,inputs,targets,sample weights none,class weight none,val inputs none,val targets none,val sample weights none,batch size none,epoch...

tensorflow 資料訓練

一 資料訓練遇到問題 excle資料,如何進行訓練?excle資料,如何resize 呢?目前思路 tfrecords 採用 numpy的方法進行處理 學習方法 從檔案中讀取資料 標準化格式tfrecords記錄 二 資料預處理 numpy 不能有中文,要採用decode等方法 不能夠有百分號?目前...

TensorFlow學習 多執行緒訓練

最近在學tensorflow,在此把學到的東西記錄一下。在學習別人 時,遇到多執行緒訓練的問題,擷取部分如下 image,label readmyowndata.read and decode dog and cat train.tfrecords sess tf.interactivesessio...