资源简介
内含有逻辑回归的源代码是数据集,使用Python3编码,有封装好的逻辑回归所需要的各种函数,适合新手学习。
代码片段和文件信息
# coding:UTF-8
import numpy as np
def sig(x):
“““
# sigmoid函数
:param x:
:return:
“““
return 1.0 / (1 + np.exp(-x))
def load_file(filename):
“““
input:filename(string)训练数据的位置
output:feature_data(mat)特征
label_data(mat)标签
“““
f = open(filename) # 打开文件
feature_data = []
label_data = []
for line in f.readlines():
feature_tmp = []
label_tmp = []
lines = line.strip().split(‘\t‘) # strip移除末尾换行符 #通过指定分隔符对字符串进行切片
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)
def error_rate(h label):
“““
计算当前损失函数的值
:param h(mat): 预测值
:param label(mat) :实际值
:return:err/m(float):错误率
“““
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
def lr_train_bgd(feature label maxCycle alpha):
“““
利用梯度下降法训练LR模型
:param feature (mat):特征
:param label(mat):标签
:param maxCycle(int):最大迭代次数
:param alpha(float):学习速率
:return:w(mat)权重
“““
n = np.shape(feature)[1] # 特征个数,特征第一维的长度
w = np.mat(np.ones((n 1))) # 初始化权重
i = 0
while i <= maxCycle:
h = sig(feature * w) # 计算Sigmoid值
err = label - h
if i % 100 == 0:
print(“\t-----------iter = “ + str(i) + \
“ train error rate = “ + str(error_rate(h label)))
w = w + alpha * feature.T * err # 权重修正
i += 1
return w
def save_model(filename w):
“““
保存最终的模型
:param filename(string):模型保存的文件名
:param w(mat):LR模型的权重
:return:
“““
m = np.shape(w)[0]
f_w = open(filename ‘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()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-29 15:56 逻辑回归\
目录 0 2018-10-29 18:40 逻辑回归\.idea\
文件 637 2018-10-23 11:30 逻辑回归\.idea\Case1.iml
目录 0 2018-10-29 18:40 逻辑回归\.idea\inspectionProfiles\
文件 294 2018-10-05 20:40 逻辑回归\.idea\misc.xm
文件 269 2018-10-05 20:40 逻辑回归\.idea\modules.xm
文件 239 2018-10-23 11:30 逻辑回归\.idea\other.xm
文件 26647 2018-10-29 18:40 逻辑回归\.idea\workspace.xm
文件 2567 2018-10-29 15:40 逻辑回归\LR_functions.py
文件 1515 2018-10-25 21:36 逻辑回归\LR_train.py
目录 0 2018-10-15 11:02 逻辑回归\__pycache__\
文件 2498 2018-10-15 11:02 逻辑回归\__pycache__\LR_functions.cpython-36.pyc
文件 5361 2018-10-14 22:28 逻辑回归\data.txt
目录 0 2018-10-13 21:45 逻辑回归\venv\
目录 0 2018-10-29 18:40 逻辑回归\venv\Include\
目录 0 2018-10-13 21:45 逻辑回归\venv\Lib\
目录 0 2018-10-13 21:45 逻辑回归\venv\Lib\site-packages\
文件 55 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\easy-install.pth
目录 0 2018-10-13 21:45 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\
目录 0 2018-10-13 21:45 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\
文件 2972 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\PKG-INFO
文件 12502 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\SOURCES.txt
文件 1 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\dependency_li
文件 98 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\entry_points.txt
文件 2 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\not-zip-safe
文件 74 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\requires.txt
文件 4 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\EGG-INFO\top_level.txt
目录 0 2018-10-13 21:45 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\
文件 24 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\__init__.py
文件 629 2018-10-05 20:40 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\__main__.py
目录 0 2018-10-13 21:45 逻辑回归\venv\Lib\site-packages\pip-10.0.1-py3.6.egg\pip\_internal\
............此处省略377个文件信息
评论
共有 条评论