91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-12
  • 語言: Python
  • 標(biāo)簽: 邏輯回歸??

資源簡介

純python代碼實現(xiàn)邏輯回歸,不調(diào)機(jī)器學(xué)習(xí)第三方庫,僅調(diào)用numpy實現(xiàn)矩陣向量計算和matplotlib實現(xiàn)畫圖

資源截圖

代碼片段和文件信息

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


#?sigmod函數(shù),即分類的函數(shù)
def?sigmod(x):
????return?1/(1+np.exp(-x))


#?代價函數(shù)
def?cost(hx?y):
????return?-y?*?np.log(hx)?-?(1-y)?*?np.log(1-hx)


#?梯度下降函數(shù)
def?gradient(current_para?x?y?learning_rate):
????m?=?len(y)
????matrix_gradient?=?np.zeros(len(x[0]))
????for?i?in?range(m):
????????current_x?=?x[i]
????????current_y?=?y[i]
????????current_x?=?np.asarray(current_x)
????????matrix_gradient?+=?(sigmod(np.dot(current_para?current_x))?-?current_y)?*?current_x

????new_para?=?current_para?-?learning_rate?*?matrix_gradient
????return?new_para


#?誤差計算函數(shù)
def?error(para?x?y):
????total?=?len(y)
????error_num?=?0
????for?i?in?range(total):
????????current_x?=?x[i]
????????current_y?=?y[i]
????????hx?=?sigmod(np.dot(para?current_x))
????????if?cost(hx?current_y)?>?0.5:
????????????error_num?+=?1

????return?error_num/total


#?訓(xùn)練過程
def?train(initial_para?x?y?learning_rate?num_iter):
????dataMat?=?np.asarray(x)
????labelMat?=?np.asarray(y)
????para?=?initial_para
????for?i?in?range(num_iter+1):
????????para?=?gradient(para?dataMat?labelMat?learning_rate)
????????if?i?%?100?==?0:
????????????err?=?error(para?dataMat?labelMat)
????????????print(“iter:“?+?str(i)?+?“?;?error:“?+?str(err))

????return?para


#?加載數(shù)據(jù)集
def?load_dataset():
????dataMat?=?[]
????labelMat?=?[]
????with?open(“l(fā)ogistic_regression_binary.csv“?“r+“)?as?file_object:
????????lines?=?file_object.readlines()
????????for?line?in?lines:
????????????line_array?=?line.strip().split()
????????????#?數(shù)據(jù)矩陣
????????????dataMat.append([1.0?float(line_array[0])?float(line_array[1])])
????????????#?標(biāo)簽矩陣
????????????labelMat.append(int(line_array[2]))

????return?dataMat?labelMat


def?plotBestFit(wei?data?label):
????if?type(wei).__name__?==?‘ndarray‘:
????????weights?=?wei
????else:
????????weights?=?wei.getA()
????fig?=?plt.figure(0)
????ax?=?fig.add_subplot(111)
????xxx?=?np.arange(-330.1)
????yyy?=?-?weights[0]/weights[2]?-?weights[1]/weights[2]*xxx
????ax.plot(xxxyyy)
????cord1?=?[]
????cord0?=?[]
????for?i?in?range(len(label)):
????????if?label[i]?==?1:
????????????cord1.append(data[i][1:3])
????????else:
????????????cord0.append(data[i][1:3])
????cord1?=?np.array(cord1)
????cord0?=?np.array(cord0)
????ax.scatter(cord1[:?0]?cord1[:?1]?c=‘red‘)
????ax.scatter(cord0[:?0]?cord0[:?1]?c=‘green‘)
????plt.show()


def?logistic_regression():
????x?y?=?load_dataset()
????n?=?len(x[0])
????initial_para?=?np.ones(n)
????learning_rate?=?0.001
????num_iter?=?1000
????print(“起始參數(shù):“)
????print(initial_para)
????para?=?train(initial_para?x?y?learning_rate?num_iter)
????print(“最后訓(xùn)練得到的參數(shù):“)
????print(para)
????plotBestFit(para?x?y)


logistic_regression()


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2698??2018-01-18?20:26??logistic_regression_binary.csv

?????文件???????2951??2018-01-18?22:30??logistic_regression_binary.py

-----------?---------??----------?-----??----

?????????????????5649????????????????????2


評論

共有 條評論