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

python實現(xiàn)logistic分類算法代碼

 更新時間:2020年02月28日 16:30:38   作者:Mr_Ten  
今天小編就為大家分享一篇python實現(xiàn)logistic分類算法代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近在看吳恩達的機器學習課程,自己用python實現(xiàn)了其中的logistic算法,并用梯度下降獲取最優(yōu)值。

logistic分類是一個二分類問題,而我們的線性回歸函數(shù)

的取值在負無窮到正無窮之間,對于分類問題而言,我們希望假設函數(shù)的取值在0~1之間,因此logistic函數(shù)的假設函數(shù)需要改造一下

由上面的公式可以看出,0 < h(x) < 1,這樣,我們可以以1/2為分界線

cost function可以這樣定義

其中,m是樣本的數(shù)量,初始時θ可以隨機給定一個初始值,算出一個初始的J(θ)值,再執(zhí)行梯度下降算法迭代,直到達到最優(yōu)值,我們知道,迭代的公式主要是每次減少一個偏導量

如果將J(θ)代入化簡之后,我們發(fā)現(xiàn)可以得到和線性回歸相同的迭代函數(shù)

按照這個迭代函數(shù)不斷調(diào)整θ的值,直到兩次J(θ)的值差值不超過某個極小的值之后,即認為已經(jīng)達到最優(yōu)解,這其實只是一個相對較優(yōu)的解,并不是真正的最優(yōu)解。 其中,α是學習速率,學習速率越大,就能越快達到最優(yōu)解,但是學習速率過大可能會讓懲罰函數(shù)最終無法收斂,整個過程python的實現(xiàn)如下

import math

ALPHA = 0.3
DIFF = 0.00001


def predict(theta, data):
  results = []
  for i in range(0, data.__len__()):
    temp = 0
    for j in range(1, theta.__len__()):
      temp += theta[j] * data[i][j - 1]
    temp = 1 / (1 + math.e ** (-1 * (temp + theta[0])))
    results.append(temp)
  return results


def training(training_data):
  size = training_data.__len__()
  dimension = training_data[0].__len__()
  hxs = []
  theta = []
  for i in range(0, dimension):
    theta.append(1)
  initial = 0
  for i in range(0, size):
    hx = theta[0]
    for j in range(1, dimension):
      hx += theta[j] * training_data[i][j]
    hx = 1 / (1 + math.e ** (-1 * hx))
    hxs.append(hx)
    initial += (-1 * (training_data[i][0] * math.log(hx) + (1 - training_data[i][0]) * math.log(1 - hx)))
  initial /= size
  iteration = initial
  initial = 0
  counts = 1
  while abs(iteration - initial) > DIFF:
    print("第", counts, "次迭代, diff=", abs(iteration - initial))
    initial = iteration
    gap = 0
    for j in range(0, size):
      gap += (hxs[j] - training_data[j][0])
    theta[0] = theta[0] - ALPHA * gap / size
    for i in range(1, dimension):
      gap = 0
      for j in range(0, size):
        gap += (hxs[j] - training_data[j][0]) * training_data[j][i]
      theta[i] = theta[i] - ALPHA * gap / size
      for m in range(0, size):
        hx = theta[0]
        for j in range(1, dimension):
          hx += theta[j] * training_data[i][j]
        hx = 1 / (1 + math.e ** (-1 * hx))
        hxs[i] = hx
        iteration += -1 * (training_data[i][0] * math.log(hx) + (1 - training_data[i][0]) * math.log(1 - hx))
      iteration /= size
    counts += 1
  print('training done,theta=', theta)
  return theta


if __name__ == '__main__':
  training_data = [[1, 1, 1, 1, 0, 0], [1, 1, 0, 1, 0, 0], [1, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 1], [0, 1, 0, 0, 0, 1],
        [0, 0, 0, 0, 1, 1]]
  test_data = [[0, 1, 0, 0, 0], [0, 0, 0, 0, 1]]
  theta = training(training_data)
  res = predict(theta, test_data)
  print(res)

運行結(jié)果如下

以上這篇python實現(xiàn)logistic分類算法代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 解決Django響應JsonResponse返回json格式數(shù)據(jù)報錯問題

    解決Django響應JsonResponse返回json格式數(shù)據(jù)報錯問題

    這篇文章主要介紹了解決Django響應JsonResponse返回json格式數(shù)據(jù)報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • python的邏輯與循環(huán)詳解

    python的邏輯與循環(huán)詳解

    這篇文章主要為大家詳細介紹了python的邏輯與循環(huán),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python flask路由間傳遞變量實例詳解

    Python flask路由間傳遞變量實例詳解

    這篇文章主要介紹了Python flask路由間傳遞變量實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • calendar在python3時間中常用函數(shù)舉例詳解

    calendar在python3時間中常用函數(shù)舉例詳解

    這篇文章主要介紹了calendar在python3時間中常用函數(shù)的相關文章,對此知識點有興趣的朋友們可以學習下。
    2020-11-11
  • 通過實例解析Python return運行原理

    通過實例解析Python return運行原理

    這篇文章主要介紹了通過實例解析Python return運行原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • python 自定義異常和主動拋出異常(raise)的操作

    python 自定義異常和主動拋出異常(raise)的操作

    這篇文章主要介紹了python 自定義異常和主動拋出異常(raise)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • python中實現(xiàn)php的var_dump函數(shù)功能

    python中實現(xiàn)php的var_dump函數(shù)功能

    這篇文章主要介紹了python中實現(xiàn)php的var_dump函數(shù)功能,var_dump函數(shù)在PHP中調(diào)試時非常實用,本文介紹在Python中實現(xiàn)這個函數(shù),需要的朋友可以參考下
    2015-01-01
  • windows下python 3.6.4安裝配置圖文教程

    windows下python 3.6.4安裝配置圖文教程

    這篇文章主要為大家詳細介紹了windows下python 3.6.4安裝配置圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python3如何去除字符串中的特殊字符

    python3如何去除字符串中的特殊字符

    這篇文章主要介紹了python3如何去除字符串中的特殊字符,在平時處理字符串的時候,經(jīng)常會遇到字符串中夾雜著我們不希望看到的特殊字符,那么如何處理這些特殊字符呢,今天就跟著小編來看看吧
    2023-04-04
  • Python網(wǎng)絡編程詳解(常用庫、代碼案例、環(huán)境搭建等)

    Python網(wǎng)絡編程詳解(常用庫、代碼案例、環(huán)境搭建等)

    網(wǎng)絡編程是Python中非常重要的一個領域,涉及到的常用庫包括socket、asyncio、http、requests、websockets等,下面我們將從常用庫、庫的詳細用法、完整代碼案例、依賴項、環(huán)境搭建、注意事項和常見問題等方面,對Python網(wǎng)絡編程進行詳細講解,需要的朋友可以參考下
    2025-03-03

最新評論

新昌县| 卓尼县| 得荣县| 徐水县| 金坛市| 渝中区| 永新县| 东安县| 琼海市| 诸城市| 南康市| 惠安县| 新晃| 永寿县| 文山县| 永德县| 古田县| 康平县| 白朗县| 华安县| 乐都县| 绍兴县| 云南省| 保靖县| 香港| 布尔津县| 安康市| 天峨县| 临汾市| 盐源县| 金乡县| 拉孜县| 康保县| 义乌市| 扶沟县| 伊宁县| 枣强县| 宁远县| 若尔盖县| 彰化县| 将乐县|