tensorflow實(shí)現(xiàn)簡(jiǎn)單邏輯回歸
邏輯回歸是機(jī)器學(xué)習(xí)中很簡(jiǎn)答的一個(gè)栗子,這篇文章就是要介紹如何使用tensorflow實(shí)現(xiàn)一個(gè)簡(jiǎn)單的邏輯回歸算法。
邏輯回歸可以看作只有一層網(wǎng)絡(luò)的前向神經(jīng)網(wǎng)絡(luò),并且參數(shù)連接的權(quán)重只是一個(gè)值,而非矩陣。公式為:y_predict=logistic(X*W+b),其中X為輸入,W為輸入與隱含層之間的權(quán)重,b為隱含層神經(jīng)元的偏置,而logistic為激活函數(shù),一般為sigmoid或者tanh, y_predict為最終預(yù)測(cè)結(jié)果。
邏輯回歸是一種分類(lèi)器模型,需要木便函數(shù)不斷的優(yōu)化參數(shù),這里目標(biāo)函數(shù)為y_predict與真實(shí)標(biāo)簽Y之間的L2距離,使用隨機(jī)梯度下降算法來(lái)更新權(quán)重和偏置。 廢話不多說(shuō),貼代碼:
# -*- coding:utf-8 -*- #功能: 使用tensorflow實(shí)現(xiàn)一個(gè)簡(jiǎn)單的邏輯回歸 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #創(chuàng)建占位符 X=tf.placeholder(tf.float32) Y=tf.placeholder(tf.float32) #創(chuàng)建變量 #tf.random_normal([1])返回一個(gè)符合正太分布的隨機(jī)數(shù) w=tf.Variable(tf.random_normal([1],name='weight')) b=tf.Variable(tf.random_normal([1],name='bias')) y_predict=tf.sigmoid(tf.add(tf.mul(X,w),b)) num_samples=400 cost=tf.reduce_sum(tf.pow(y_predict-Y,2.0))/num_samples #學(xué)習(xí)率 lr=0.01 optimizer=tf.train.AdamOptimizer().minimize(cost) #創(chuàng)建session 并初始化所有變量 num_epoch=500 cost_accum=[] cost_prev=0 #np.linspace()創(chuàng)建agiel等差數(shù)組,元素個(gè)素為num_samples xs=np.linspace(-5,5,num_samples) ys=np.sin(xs)+np.random.normal(0,0.01,num_samples) with tf.Session() as sess: #初始化所有變量 sess.run(tf.initialize_all_variables()) #開(kāi)始訓(xùn)練 for epoch in range(num_epoch): for x,y in zip(xs,ys): sess.run(optimizer,feed_dict={X:x,Y:y}) train_cost=sess.run(cost,feed_dict={X:x,Y:y}) cost_accum.append(train_cost) print "train_cost is:",str(train_cost) #當(dāng)誤差小于10-6時(shí) 終止訓(xùn)練 if np.abs(cost_prev-train_cost)<1e-6: break #保存最終的誤差 cost_prev=train_cost #畫(huà)圖 畫(huà)出每一輪訓(xùn)練所有樣本之后的誤差 plt.plot(range(len(cost_accum)),cost_accum,'r') plt.title('Logic Regression Cost Curve') plt.xlabel('epoch') plt.ylabel('cost') plt.show()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- win10下python3.5.2和tensorflow安裝環(huán)境搭建教程
- win10下tensorflow和matplotlib安裝教程
- python3.6.3安裝圖文教程 TensorFlow安裝配置方法
- Tensorflow使用支持向量機(jī)擬合線性回歸
- TensorFlow實(shí)現(xiàn)iris數(shù)據(jù)集線性回歸
- TensorFlow實(shí)現(xiàn)模型評(píng)估
- 使用tensorflow實(shí)現(xiàn)線性svm
- 使用TensorFlow實(shí)現(xiàn)SVM
- TensorFlow Session使用的兩種方法小結(jié)
- C++調(diào)用tensorflow教程
相關(guān)文章
Pytorch實(shí)現(xiàn)基于CharRNN的文本分類(lèi)與生成示例
今天小編就為大家分享一篇Pytorch實(shí)現(xiàn)基于CharRNN的文本分類(lèi)與生成示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python 實(shí)現(xiàn)循環(huán)定義、賦值多個(gè)變量的操作
這篇文章主要介紹了python 實(shí)現(xiàn)循環(huán)定義、賦值多個(gè)變量的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03python中scipy.stats產(chǎn)生隨機(jī)數(shù)實(shí)例講解
在本篇文章里小編給大家分享的是一篇關(guān)于python中scipy.stats產(chǎn)生隨機(jī)數(shù)實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-02-02python 獲取鍵盤(pán)輸入,同時(shí)有超時(shí)的功能示例
今天小編就為大家分享一篇python 獲取鍵盤(pán)輸入,同時(shí)有超時(shí)的功能示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python中單例常用的幾種實(shí)現(xiàn)方法總結(jié)
Python 的模塊就是天然的單例模式,下面這篇文章主要給大家介紹了關(guān)于python中單例常用的幾種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python單例具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起來(lái)看看吧2018-10-10