-
大小: 8.1MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-11-15
- 语言: Python
- 标签: 机器学习 逻辑回归 LR regression
资源简介
内含完整的逻辑回归数据集,已经逻辑回归训练,训练完成后的模型测试部分(包括代码和完成数据集),用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()
# 测试用函数
def load_weight(w):
“““
导入LR模型
:param w:(string)权重所在的文件位置
:return:np.mat(w)mat权重的矩阵
“““
f = open(w)
w = []
for line in f.readlines():
lines = line.strip().split(“\t“) # strip()去除首尾空字符#split切片
w_tmp = []
for x in lines:
w_tmp.append(float(x))
w.append(w_tmp)
f.close()
return np.mat(w)
def load_teData(filename n):
“““
导入测试数据集
:param filename:文件名
:param n:特征个数
:return:np.mat(feature_data)(mat)测试集的特征
“““
f = open(filename)
feature_data = []
for line in f.readlines():
feature_temp = []
lines = line.strip()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-30 16:33 逻辑回归\
目录 0 2018-10-30 16:34 逻辑回归\.idea\
文件 637 2018-10-23 11:30 逻辑回归\.idea\Case1.iml
文件 128 2018-10-05 20:40 逻辑回归\venv\pyvenv.cfg
文件 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
文件 31539 2018-10-30 16:34 逻辑回归\.idea\workspace.xm
文件 4498 2018-10-30 16:29 逻辑回归\LR_functions.py
文件 714 2018-10-30 16:33 逻辑回归\LR_test.py
文件 1520 2018-10-30 10:41 逻辑回归\LR_train.py
目录 0 2018-10-15 11:02 逻辑回归\__pycache__\
文件 2498 2018-10-15 11:02 逻辑回归\__pycache__\LR_functions.cpython-36.pyc
文件 28312 2018-10-05 20:40 逻辑回归\venv\sc
文件 799 2018-10-30 16:32 逻辑回归\testResult
文件 6850 2018-10-30 15:20 逻辑回归\test_data
文件 5361 2018-10-14 22:28 逻辑回归\trainingData
目录 0 2018-10-30 11:41 逻辑回归\venv\
文件 87888 2018-10-05 20:40 逻辑回归\venv\sc
目录 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
............此处省略381个文件信息
相关资源
- 《机器学习》第2章中候选消除CANDID
- Python3实现KNN的三个包含数据集,水果
- 《深入浅出Python机器学习》源程序.
- gurobi学习手册,很好用的自定义机器
- python机器学习5个数据科学家案例解析
- pandas-0.25.3-cp37-cp37m-win_amd64.whl
- xlrd-1.2.0.tar
- python机器学习-音乐分类器实现
- Python数据分析与机器学习-新闻分类任
- 吴恩达深度学习1-21-31-42-1编程作业线
- 深入浅出Python机器学习-段小手
- 《机器学习-使用OpenCV和Python进行智能
- Python Machine Learning( Python机器学习.
- 机器学习红楼梦Python代码
- Python数据分析与机器学习-贝叶斯实现
- 机器学习实战 Python实现
- Python for ProbabilityStatisticsand Machine Le
- IronPython In Action
- 机器学习实战python实现
- 图像处理的详细python程序
- 逻辑回归Python源代码
- 《Learning data mining with python》中文版
- 人工智能-python机器学习实战高清完整
- Python-STGAN用于图像合成的空间变换生
- Python-利用GAN进行图片填充
- 笨办法学python3
- 《Python机器学习》实验报告.doc
- 机器学习机器学习机器学习python的P
- Python-基于50W携程出行攻略的顺承事件
- 机器学习对应的相关python代码SVM、C
评论
共有 条评论