Logistic回归的python代码实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码
摘要由CSDN通过智能技术生成

前言

logistic回归,又叫逻辑回归,上一篇讲的线性回归模型是用来进行线性预测的,然而本篇中虽然有回归二字,但是logistic回归是用来进行分类的,逻辑回归是一种线性分类模型 .它有一个线性决策边界(超平 面),但用一个非线性激活函数(Sigmoid SigmoidSigmoid函数)来模拟后验概 率。具体的理论推导参见周老师的西瓜书,所不同的是。本为代码所使用的最优化函数是最大化对数最大似然函数,不是西瓜书上的最小化对数似然函数的倒数,但实际上二者本质上是一致的,没有大的分别。菜鸡轻喷,代码可直接运行。


年轻人讲码德,话不多说上代码

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.markers as mks
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
import random


class LogisticRegressionClass(object):
    def __init__(self, dataX, dataY, testX, testY, learningRate, loopNum):
        # X为输入的矩阵,一行代表一份数据,行数代表样本的数量,列数代表样本的维数
        # Y为对应的结果值
        # learningRate表示学习率
        # loopNum表示训练的次数
        self.trainX = dataX
        self.trainY = dataY
        self.learningRate = learningRate
        self.loopNum = loopNum
        self.Y_Train = np.array([self.trainY]).T  # 转化为列向量
        self.X_Train = np.column_stack((dataX, np.repeat(1, dataX.shape[0])))  # 扩充矩阵一列全1,变成广义矩阵,作用是与偏置项进行乘积
        self.parameter = np.array([np.ones(self.X_Train.shape[1])]).T  # 最后一位为偏置项
        self.testX = testX
        self.testY = testY
        self.Y_Test = np.array([self.testY]).T
        self.X_Test = np.column_stack((testX, np.repeat(1, testX.shape[0])))
        self.WTX = None  # W为参数,T为转置,X为数据
        self.error = None  # 误差
        self.derivative = None  # 梯度值

    def GradientDecent(self):
        # 梯度下降法
        # 梯度的计算值是根据最大似然估计得出的结论
        for i in range(self.loopNum):
            self.WTX = np.dot(self
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值