欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python編程實現(xiàn)線性回歸和批量梯度下降法代碼實例

 更新時間:2018年01月04日 14:33:50   作者:Key_Ky  
這篇文章主要介紹了Python編程實現(xiàn)線性回歸和批量梯度下降法代碼實例,具有一定借鑒價值,需要的朋友可以參考下

通過學習斯坦福公開課的線性規(guī)劃和梯度下降,參考他人代碼自己做了測試,寫了個類以后有時間再去擴展,代碼注釋以后再加,作業(yè)好多:

import numpy as np
import matplotlib.pyplot as plt
import random

class dataMinning:
  datasets = []
  labelsets = []
  
  addressD = '' #Data folder
  addressL = '' #Label folder
  
  npDatasets = np.zeros(1)
  npLabelsets = np.zeros(1)
  
  cost = []
  numIterations = 0
  alpha = 0
  theta = np.ones(2)
  #pCols = 0
  #dRows = 0
  def __init__(self,addressD,addressL,theta,numIterations,alpha,datasets=None):
    if datasets is None:
      self.datasets = []
    else:
      self.datasets = datasets
    self.addressD = addressD
    self.addressL = addressL
    self.theta = theta
    self.numIterations = numIterations
    self.alpha = alpha
    
  def readFrom(self):
    fd = open(self.addressD,'r')
    for line in fd:
      tmp = line[:-1].split()
      self.datasets.append([int(i) for i in tmp])
    fd.close()
    self.npDatasets = np.array(self.datasets)

    fl = open(self.addressL,'r')
    for line in fl:
      tmp = line[:-1].split()
      self.labelsets.append([int(i) for i in tmp])
    fl.close()
    
    tm = []
    for item in self.labelsets:
      tm = tm + item
    self.npLabelsets = np.array(tm)

  def genData(self,numPoints,bias,variance):
    self.genx = np.zeros(shape = (numPoints,2))
    self.geny = np.zeros(shape = numPoints)

    for i in range(0,numPoints):
      self.genx[i][0] = 1
      self.genx[i][1] = i
      self.geny[i] = (i + bias) + random.uniform(0,1) * variance

  def gradientDescent(self):
    xTrans = self.genx.transpose() #
    i = 0
    while i < self.numIterations:
      hypothesis = np.dot(self.genx,self.theta)
      loss = hypothesis - self.geny
      #record the cost
      self.cost.append(np.sum(loss ** 2))
      #calculate the gradient
      gradient = np.dot(xTrans,loss)
      #updata, gradientDescent
      self.theta = self.theta - self.alpha * gradient
      i = i + 1
      
  
  def show(self):
    print 'yes'
    
if __name__ == "__main__":
  c = dataMinning('c:\\city.txt','c:\\st.txt',np.ones(2),100000,0.000005)
  c.genData(100,25,10)
  c.gradientDescent()
  cx = range(len(c.cost))
  plt.figure(1)
  plt.plot(cx,c.cost)
  plt.ylim(0,25000)
  plt.figure(2)
  plt.plot(c.genx[:,1],c.geny,'b.')
  x = np.arange(0,100,0.1)
  y = x * c.theta[1] + c.theta[0]
  plt.plot(x,y)
  plt.margins(0.2)
  plt.show()

圖1. 迭代過程中的誤差cost

圖2. 數(shù)據(jù)散點圖和解直線

總結

以上就是本文關于Python編程實現(xiàn)線性回歸和批量梯度下降法代碼實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Python算法輸出1-9數(shù)組形成的結果為100的所有運算式

python中實現(xiàn)k-means聚類算法詳解

Python編程實現(xiàn)粒子群算法(PSO)詳解

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • Python程序設計入門(5)類的使用簡介

    Python程序設計入門(5)類的使用簡介

    這篇文章主要介紹了Python類的使用,需要的朋友可以參考下
    2014-06-06
  • python 通過類中一個方法獲取另一個方法變量的實例

    python 通過類中一個方法獲取另一個方法變量的實例

    今天小編就為大家分享一篇python 通過類中一個方法獲取另一個方法變量的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError

    Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError

    這篇文章主要介紹了Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError,簡單介紹了python 發(fā)送郵件的步驟,需要的朋友可以參考下
    2019-12-12
  • python字符串的一些常見實用操作

    python字符串的一些常見實用操作

    字符串是Pyhon常用的數(shù)據(jù)類型,我們可以用引號來創(chuàng)建字符創(chuàng)(可以是單引號也可以是雙引號,當然引號必須是英文的),這篇文章主要給大家介紹了關于python字符串的一些常見實用操作,需要的朋友可以參考下
    2022-04-04
  • 使用graphics.py實現(xiàn)2048小游戲

    使用graphics.py實現(xiàn)2048小游戲

    本文給大家分享的是使用Python實現(xiàn)2048小游戲的源碼,非QT實現(xiàn)的哦,推薦給大家,有需要的小伙伴參考下吧。
    2015-03-03
  • Python實現(xiàn)byte轉integer

    Python實現(xiàn)byte轉integer

    這篇文章主要介紹了Python實現(xiàn)byte轉integer操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python詳解復雜CSV文件處理方法

    Python詳解復雜CSV文件處理方法

    這篇文章主要介紹了Python數(shù)據(jù)讀寫之Python讀寫CSV文件,CSV即逗號分隔值,一種以逗號分隔按行存儲的文本文件,所有的值都表現(xiàn)為字符串類型,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-07-07
  • 對Python中TKinter模塊中的Label組件實例詳解

    對Python中TKinter模塊中的Label組件實例詳解

    今天小編就為大家分享一篇對Python中TKinter模塊中的Label組件實例詳解,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Pandas中KeyError: 'Column_Name' not in index”的報錯分析

    Pandas中KeyError: 'Column_Name' not 

    在使用Pandas進行數(shù)據(jù)處理時,KeyError: 'Column_Name' not in index是一種常見的錯誤,它通常發(fā)生在嘗試訪問DataFrame中不存在的列名時,本文將深入分析這一錯誤的原因、提供解決辦法,需要的朋友可以參考下
    2024-07-07
  • Python移動測試開發(fā)subprocess模塊項目實戰(zhàn)

    Python移動測試開發(fā)subprocess模塊項目實戰(zhàn)

    這篇文章主要為大家介紹了Python移動測試開發(fā)subprocess模塊項目實戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論