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é)果。
邏輯回歸是一種分類器模型,需要木便函數(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)文章
django restframework序列化字段校驗(yàn)規(guī)則
本文主要介紹了django restframework序列化字段校驗(yàn)規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Python?使用BeautifulSoup庫(kù)的方法
BeautifulSoup庫(kù)用于從HTML或XML文件中提取數(shù)據(jù),它可以自動(dòng)將復(fù)雜的HTML文檔轉(zhuǎn)換為樹(shù)形結(jié)構(gòu),并提供簡(jiǎn)單的方法來(lái)搜索文檔中的節(jié)點(diǎn),使得我們可以輕松地遍歷和修改HTML文檔的內(nèi)容,本文給大家介紹Python?使用BeautifulSoup庫(kù)的方法,感興趣的朋友一起看看吧2023-10-10
python爬蟲(chóng)請(qǐng)求庫(kù)httpx和parsel解析庫(kù)的使用測(cè)評(píng)
這篇文章主要介紹了python爬蟲(chóng)請(qǐng)求庫(kù)httpx和parsel解析庫(kù)的使用測(cè)評(píng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-05-05
Anaconda配置pytorch-gpu虛擬環(huán)境的圖文教程
這篇文章主要介紹了Anaconda配置pytorch-gpu虛擬環(huán)境步驟整理,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Python利用PyMuPDF模塊實(shí)現(xiàn)快速轉(zhuǎn)換PDF文件
PDF是一種廣泛使用的文件格式,可以在任何設(shè)備上查看和打印,那么如何用Python和PyMuPDF制作你想要大小的PDF文件呢,本文就來(lái)和大家詳細(xì)講講2023-08-08
python分段函數(shù)的實(shí)現(xiàn)示例
分段函數(shù)是一種數(shù)學(xué)函數(shù),它將定義域分成若干個(gè)區(qū)間,每個(gè)區(qū)間對(duì)應(yīng)一個(gè)函數(shù),本文主要介紹了python分段函數(shù)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

