1. 程式人生 > >python實現logistic迴歸演算法

python實現logistic迴歸演算法

'''
logistic迴歸函式
'''

from __future__ import  print_function

import tensorflow as tf

#匯入MNIST資料
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/",one_hot=True)

#引數
learning_rate = 0.01
training_epochs = 25
batch_size = 100
display_step = 1

#tf圖表輸入
x = tf.placeholder(tf.float32,[None,784]) y = tf.placeholder(tf.float32,[None,10]) #設定模型權重 W = tf.Variable(tf.zeros([784,10])) b = tf.Variable(tf.zeros([10])) #構建模型 pred = tf.nn.softmax(tf.matmul(x,W) + b) #交叉熵最小化誤差 cost = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred),reduction_indices=1)) #梯度下降 optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #初始化變數
init = tf.global_variables_initializer() #開始訓練 with tf.Session() as sess: #開始初始化 sess.run(init) #訓練週期 for epoch in range(training_epochs): avg_cost = 0. total_batch = int(mnist.train.num_examples / batch_size) #迴圈 for i in range(total_batch): batch_xs,batch_ys = mnist.train.next_batch(batch_size) #執行優化操作(backprop)和成本操作(獲取損失值)
_, c = sess.run([optimizer,cost],feed_dict={x:batch_xs,y:batch_ys}) #計算平均損失 avg_cost += c / total_batch #顯示每步日誌 if (epoch + 1) % display_step == 0: print("Epoch:",'%04d' % (epoch + 1),"cost=","{:.9f}".format(avg_cost)) print("優化完成") #測試模型 correct_prediction = tf.equal(tf.argmax(pred,1),tf.argmax(y,1)) #計算準確度 accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) print("Accuracy:",accuracy.eval({x:mnist.test.images,y:mnist.test.labels}))

相關推薦

python實現logistic迴歸演算法

''' logistic迴歸函式 ''' from __future__ import print_function import tensorflow as tf #匯入MNIST資料 from tensorflow.examples.tutorial

Python實現邏輯迴歸演算法(一)

本次用Python實現邏輯迴歸演算法,邏輯迴歸是應用非常廣泛的一個分類及其學習演算法,它將資料擬合到一個logit函式中,從而完成對事件發生的概率進行預測。本次學習筆記主要參考了《Python進行資料分析與挖掘實踐》和作者@寒小陽的部落格,地址如下:http://blog.c

機器學習實戰——python實現Logistic迴歸

簡介 Logistic迴歸的目的是尋找一個非線性函式Sigmoid的最佳擬合引數,一般使用梯度上升演算法。 對於有n個屬性的train資料集(X1,X2,...Xn),我們尋找一組迴歸係數(W0,W1

python實現logistic分類演算法

最近在看吳恩達的機器學習課程,自己用python實現了其中的logistic演算法,並用梯度下降獲取最優值。 logistic分類是一個二分類問題,而我們的線性迴歸函式 的取值在負無窮到正無窮之間,對於分類問題而言,我們希望假設函式的取值在0~1之間,因

logistic迴歸演算法原理及python實現

1 logistic迴歸與sigmoid函式 考慮如下線性函式: y=wwTxx+b(1) 輸出y為連續的實值,如何讓輸出成為二值來完成二分類任務?即y∈{0,1},最理想的是單位階躍函式即: y=⎧⎩⎨⎪⎪0,z<00.5,z=01,z>0

數學推導+純Python實現機器學習演算法:邏輯迴歸

自本系列第一講推出以來,得到了不少同學的反響和贊成,也有同學留言說最好能把數學推導部分寫的詳細點,筆者只能說盡力,因為打公式實在是太浪費時間了。。本節要和大家一起學習的是邏輯(logistic)迴歸模型,繼續按照手推公式+純 Python 的寫作套路。 邏輯迴歸本質上跟邏輯這個詞不是很搭邊,叫這個名字完

機器學習之logistic迴歸演算法與程式碼實現

                                       Logistic迴歸演算法與程式

Python實現線性迴歸2,梯度下降演算法

接上篇 4.梯度下降演算法 《斯坦福大學公開課 :機器學習課程》吳恩達講解第二課時,是直接從梯度下降開始講解,最後採用向量和矩陣的方式推導瞭解析解,國內很多培訓視訊是先講解析解後講梯度下降,個人認為梯度下降演算法更為重要,它是很多演算法(邏輯迴歸、神經網路)都可

機器學習經典演算法詳解及Python實現--線性迴歸(Linear Regression)演算法

(一)認識迴歸 迴歸是統計學中最有力的工具之一。機器學習監督學習演算法分為分類演算法和迴歸演算法兩種,其實就是根據類別標籤分佈型別為離散型、連續性而定義的。顧名思義,分類演算法用於離散型分佈預測,如前

Python實現邏輯迴歸(Logistic Regression in Python)

本文基於yhat上Logistic Regression in Python,作了中文翻譯,並相應補充了一些內容。本文並不研究邏輯迴歸具體演算法實現,而是使用了一些演算法庫,旨在幫助需要用Python來做邏輯迴歸的訓練和預測的讀者快速上手。 邏輯迴歸是一項可用於預測二分

Python實現線性迴歸和邏輯迴歸演算法

本文使用python實現了線性迴歸和邏輯迴歸演算法,並使用邏輯迴歸在實際的資料集上預測疝氣病症病馬的死亡率(當然這裡我們的線性迴歸和邏輯迴歸實現是原生的演算法,並沒有考慮正則化係數問題,後期會將其補充完整)。 一、線性迴歸 1.模型表示 2.損失函式

迴歸演算法——python實現線性迴歸

演算法簡介 給定資料集D={(x1,y1),(x2,y2),…,(xm,ym)},一共有m個樣本,其中每個樣本有d個屬性,即xi = (xi1,xi2,…,xid)。線性迴歸是試圖學到一個線性模型 f(x) = w1*x1+w2*x2+…+wd*xd + b以

寫程式學ML:Logistic迴歸演算法原理及實現(三)

2.2   利用Logistic演算法預測病馬死亡率 由於採集資料是諸多原因,採集的資料有可能不完整。但有時候資料相當昂貴,扔掉和重新獲取都是不可取的,所以必須採用一些方法來解決這個問題。 處理資料中缺失值的做法: 1>    使用可用特徵的均值來填補缺失值; 2&g

寫程式學ML:Logistic迴歸演算法原理及實現(一)

[題外話]近期申請了一個微信公眾號:平凡程式人生。有興趣的朋友可以關注,那裡將會涉及更多更新機器學習、OpenCL+OpenCV以及影象處理方面的文章。 1、Logistic迴歸演算法的原理 假設現在有一些資料點,我們用一條直線對這些點進行擬合(該線稱為最佳擬合直線),這個

寫程式學ML:Logistic迴歸演算法原理及實現(二)

2、Logistic迴歸演算法的實現 2.1   Logistic演算法的實現 首先,我們實現梯度上升演算法。 Sigmoid函式的定義如下: #sigmoid函式的實現 def sigmoid(inX): return 1.0 / (1 + exp(-inX))

python實現K均值演算法

import numpy as np x = np.random.randint(1,60,[30,1]) y = np.zeros(20) k = 3 #1選取資料空間中的K個物件作為初始中心,每個物件代表一個聚類中心; def initcen(x,k): return x[:k]

基於sciket-learn實現線性迴歸演算法

線性迴歸演算法主要用來解決迴歸問題,是許多強大的非線性模型的基礎,無論是簡單線性迴歸,還是多元線性迴歸,思想都是一樣的,假設我們找到了最佳擬合方程(對於簡單線性迴歸,多元線性迴歸對應多個特徵作為一組向量)y=ax+b,則對於每一個樣本點xi,根據我們的直線方程,預測值為y^i = axi + b,真

python實現線性迴歸.md

python實現線性迴歸 一、相關數學推導 1.問題描述 所謂線性迴歸,就是給你一批資料比如房子的面積以及房子的價格,然後你所做的就是找到一條線能儘量的擬合這一批資料。如下所示。 其中紅色點就是給出的資料集合,有size代表面積,而price代表價格,紅色點點就代表

python 實現各種排序演算法

總結了一下常見集中排序的演算法。   歸併排序 歸併排序也稱合併排序,是分治法的典型應用。分治思想是將每個問題分解成個個小問題,將每個小問題解決,然後合併。 具體的歸併排序就是,將一組無序數按n/2遞迴分解成只有一個元素的子項,一個元素就是已經排好序的了。然後將這些有

Python實現RSA加密演算法

基本思路在這裡說一下: 設p、q為質數 n = p*q fn = (p-1)*(q-1) 要滿足: 1 < e < fn , 且 e 與 fn 互質 滿足: e*d%fn = 1 (d>1) e 為公鑰 , d 為私鑰 把e 和 n 發給 客戶端 m 為明文 c =