資源簡介
壓縮包里含有logistic regression邏輯回歸的Python源代碼,訓練數據集和測試訓練集,最后也用Python畫了結構示意圖。只需要有Numpy和Matplotlib兩個包即可。

代碼片段和文件信息
import?numpy?as?np
#?the?function?of?sigmoid
def?sig(x):
????return?1.0?/?(1?+?np.exp(-x))
#?train?the?model?by?BGD?algorithm
def?lr_train_bgd(feature?label?maxCycle?alpha):
????n?=?np.shape(feature)[1]??#?the?dimension?of?the?feature
????w?=?np.mat(np.ones((n?1)))?#?initialize?the?weights
????i?=0
????while?i?????????i?+=?1
????????h?=?sig(feature?*?w)
????????err?=?label?-?h
????????if?i?%?100?==?0:
????????????print(‘-----iter=‘?+?str(i)?+?‘train?error?rate=‘?+?str(error_rate(h?label)))
????????w?=?w?+?alpha?*?feature.T?*?err?#?update?the?weights
????return?w
#??compute?the?rate?of?error
def?error_rate(h?label):
????m?=?np.shape(h)[0]
????sum_err?=?0.0
????for?i?in?range(m):
????????if?h[i?0]?>?0?and?(1?-?h[i?0])?>?0:
????????????sum_err?-=?(label[i?0]?*?np.log(h[i?0])?+?(1-label[i?0])?*?np.log(1-h[i?0]))
????????else:
????????????sum_err?-=?0
????return?sum_err?/?m
#?load?the?data?for?training
def?load_data(file_name):
????f?=?open(file_name)
????feature_data?=?[]
????label_data?=?[]
????for?line?in?f.readlines():
????????feature_tmp?=?[]
????????label_tmp?=?[]
????????lines?=?line.strip().split(“\t“)
????????feature_tmp.append(1)
????????for?i?in?range(len(lines)?-?1):
????????????feature_tmp.append(float(lines[i]))
????????label_tmp.append(float(lines[-1]))
????????feature_data.append(feature_tmp)
????????label_data.append(label_tmp)
????f.close()
????return?np.mat(feature_data)?np.mat(label_data)
#?save?the?modelon?the?other?wordsave?the?weights
def?save_model(file_name?w):
????m?=?np.shape(w)[0]
????f_w?=?open(file_name?‘w‘)
????w_array?=?[]
????for?i?in?range(m):
????????w_array.append(str(w[i?0]))
????f_w.write(“\t“.join(w_array))
????f_w.close()
#?the?main?function
if?__name__?==?“__main__“:
????feature?label?=?load_data(‘data.txt‘)
????w?=?lr_train_bgd(feature?label?1000?0.01)
????save_model(“weights“?w)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????464??2019-04-04?16:00??classification\.idea\classification.iml
?????文件????????188??2019-04-04?15:46??classification\.idea\misc.xm
?????文件????????287??2019-04-04?15:46??classification\.idea\modules.xm
?????文件??????12256??2019-04-04?17:00??classification\.idea\workspace.xm
?????文件???????7251??2017-12-01?23:19??classification\data.txt
?????文件???????1957??2019-04-04?16:29??classification\logistic-regression.py
?????文件???????1507??2019-04-04?16:55??classification\test.py
?????文件???????6851??2017-12-01?23:19??classification\test_data
?????文件??????????0??2019-04-04?16:14??classification\__init__.py
?????目錄??????????0??2019-04-04?17:00??classification\.idea
?????目錄??????????0??2019-04-04?17:00??classification
-----------?---------??----------?-----??----
????????????????30761????????????????????11
評論
共有 條評論