zoukankan      html  css  js  c++  java
  • Logistic回归

    Logistic 回归 或者叫逻辑回归 虽然名字有回归,但是它是用来做分类的。其主要思想是: 根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。

    优缺点:

    优点: 计算代价不高,易于理解和实现。
    缺点: 容易欠拟合,分类精度可能不高。
    适用数据类型: 数值型和标称型数据。

    流程:

    每个回归系数初始化为 1
    重复 R 次:
        计算整个数据集的梯度
        使用 步长 x 梯度 更新回归系数的向量
    返回回归系数

    核心代码:

     1 def stoc_grad_ascent1(data_mat, class_labels, num_iter=150):
     2     """
     3     改进版的随机梯度上升,使用随机的一个样本来更新回归系数
     4     :param data_mat: 输入数据的数据特征(除去最后一列),ndarray
     5     :param class_labels: 输入数据的类别标签(最后一列数据
     6     :param num_iter: 迭代次数
     7     :return: 得到的最佳回归系数
     8     """
     9     m, n = np.shape(data_mat)
    10     weights = np.ones(n)
    11     for j in range(num_iter):
    12         # 这里必须要用list,不然后面的del没法使用
    13         data_index = list(range(m))
    14         for i in range(m):
    15             # i和j的不断增大,导致alpha的值不断减少,但是不为0
    16             alpha = 4 / (1.0 + j + i) + 0.01
    17             # 随机产生一个 0~len()之间的一个值
    18             # random.uniform(x, y) 方法将随机生成下一个实数,它在[x,y]范围内,x是这个范围内的最小值,y是这个范围内的最大值。
    19             rand_index = int(np.random.uniform(0, len(data_index)))
    20             h = sigmoid(np.sum(data_mat[data_index[rand_index]] * weights))
    21             error = class_labels[data_index[rand_index]] - h
    22             weights = weights + alpha * error * data_mat[data_index[rand_index]]
    23             del(data_index[rand_index])
    24     return weights
  • 相关阅读:
    读取IIS用户名和密码VBS代码
    sqltools最新增强版
    网站后台备份自动备份成ASA格式却并不表示拿Shell方法
    Google Hack 最新版
    FZU 2105 Digits Count(AC)
    ZOJ 1387 Decoding Morse Sequences
    ZOJ 1391 Horizontally Visible Segments
    codeforces Round #184 Div.2 B Continued Fractions
    FZU 2105 Digits Count(WA)
    POJ 2828 Buy Tickets
  • 原文地址:https://www.cnblogs.com/eastblue/p/11627407.html
Copyright © 2011-2022 走看看