最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

通過學(xué)習(xí)斯坦福公開課的線性規(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ù)散點圖和解直線

總結(jié)

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

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

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

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

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

相關(guān)文章

  • Python 使用多屬性來進行排序

    Python 使用多屬性來進行排序

    這篇文章主要介紹了Python 使用多屬性來進行排序的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Pandas中的常用數(shù)據(jù)類型詳解

    Pandas中的常用數(shù)據(jù)類型詳解

    文章總結(jié):介紹了pandas庫中常用的四種數(shù)據(jù)結(jié)構(gòu):Series、DatetimeIndex、DataFrame和Panel,詳細解釋了Series和DatetimeIndex的基本組成和常用操作,并提供了生成時間序列對象的函數(shù)date_range()及其參數(shù)說明
    2025-01-01
  • Python的Flask框架開發(fā)驗證碼登錄的實現(xiàn)

    Python的Flask框架開發(fā)驗證碼登錄的實現(xiàn)

    在本文我們介紹了如何使用Python的Flask框架開發(fā)一個簡單的驗證碼登錄功能,將涵蓋生成驗證碼、處理用戶輸入、驗證驗證碼以及實現(xiàn)安全的用戶認證等方面,感興趣的可以了解一下
    2023-11-11
  • Python?base64和hashlib模塊及用法詳解

    Python?base64和hashlib模塊及用法詳解

    這篇文章主要介紹了Python?base64和hashlib模塊,本文通過實例代碼介紹了base64和hashlib模塊的相關(guān)知識,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • python Django框架實現(xiàn)自定義表單提交

    python Django框架實現(xiàn)自定義表單提交

    這篇文章主要為大家詳細介紹了Django框架實現(xiàn)自定義表單提交,針對"表單提交"和"Ajax提交"兩種方式來解決CSRF帶來的錯誤進行講解,感興趣的小伙伴們可以參考一下
    2016-03-03
  • python實現(xiàn)五子棋游戲

    python實現(xiàn)五子棋游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python命令行參數(shù)用法實例分析

    python命令行參數(shù)用法實例分析

    這篇文章主要介紹了python命令行參數(shù)用法,結(jié)合實例形式分析了Python基于optparse模塊處理命令行參數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2019-06-06
  • Tensorflow 實現(xiàn)修改張量特定元素的值方法

    Tensorflow 實現(xiàn)修改張量特定元素的值方法

    今天小編就為大家分享一篇Tensorflow 實現(xiàn)修改張量特定元素的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Pytorch 的 LSTM 模型的示例教程

    Pytorch 的 LSTM 模型的示例教程

    本文給大家介紹了Pytorch 的 LSTM 模型的示例教程,文中結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-06-06
  • 對python Tkinter Text的用法詳解

    對python Tkinter Text的用法詳解

    今天小編就為大家分享一篇對python Tkinter Text的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論

德安县| 庆城县| 瓦房店市| 安丘市| 叙永县| 三亚市| 长汀县| 滦南县| 江永县| 军事| 兰坪| 林周县| 霍林郭勒市| 遂平县| 民县| 南安市| 南澳县| 新安县| 肥城市| 连江县| 临夏县| 额尔古纳市| 仙居县| 克山县| 阜阳市| 固安县| 平顺县| 武山县| 棋牌| 邹城市| 东乡族自治县| 铅山县| 天台县| 个旧市| 依安县| 靖边县| 朔州市| 晋城| 凯里市| 明光市| 房山区|