• 大小: 8.09MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-10
  • 语言: Python
  • 标签: 逻辑回归  

资源简介

内含有逻辑回归的源代码是数据集,使用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.xml
     文件         269  2018-10-05 20:40  逻辑回归\.idea\modules.xml
     文件         239  2018-10-23 11:30  逻辑回归\.idea\other.xml
     文件       26647  2018-10-29 18:40  逻辑回归\.idea\workspace.xml
     文件        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_links.txt
     文件          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个文件信息

评论

共有 条评论