精华内容
下载资源
问答
  • matlab实现的多分类逻辑回归

    热门讨论 2015-06-22 08:50:21
    matlab实现的多分类逻辑回归,用于手写数字识别
  • K类逻辑回归分类基于K二元逻辑分类器
  • matlab开发-五个参数逻辑回归,然后再返回。用五点逻辑回归或插值数据拟合数据点。
  • 输入:特征和标签->模型->回归系数->预测:分类结果 功能:逻辑回归实现二分类
  • 利用matlab自带工具箱对二分类数据进行逻辑回归预测1和0的概率
  • matlab实现逻辑回归

    2018-04-24 10:52:05
    matlab实现逻辑回归,够字数了吗,够字数了吗,够字数了吗
  • matlab code ,关于多项式逻辑回归的实现代码,内有操作
  • 逻辑回归代码 KLS #跨语言情感分类 ##实验代码 分支 优化方式 Gs是否变化 Fs,Ft归一化方式 备注 master 联合 不变 列为一 F和S不做分解,保持S尽量接近 LSFTL 联合 不变 列为一 F和S分解,保证公共部分尽量相似 所有...
  • 多分类处理。引用Iris数据集的方法主要有在sklearn的sklearn库中导入iris数据集和下载官方的iris.csv文 件。本项目使用后一种获取数据的方法。 三、数据预处理 将数据集进行数据类型的转换,将Sepal Length(花萼...
  • 今天尝试写了一下逻辑回归分类,把代码分享给大家,至于原理的的话请戳这里https://blog.csdn.net/laobai1015/article/details/78113214 (在这片博客的基础上我加了一丢丢东西)。 用到的预测函数为 ...

    逻辑回归二分类

    今天尝试写了一下逻辑回归分类,把代码分享给大家,至于原理的的话请戳这里 https://blog.csdn.net/laobai1015/article/details/78113214   (在这片博客的基础上我加了一丢丢东西)。

    用到的预测函数

    其中,h为预测函数(大于0.5为一类,小于等于0.5为另一类)。θ为各个特征的参数。θ=[θ1,θ2,θ3...]T

    损失函数J(θ)

     

    利用梯度下降算法进行参数的更新公式如下:

    其中,α是学习率参数,λ是正则项参数,需要自己输入。

    用上述三个公式即可写出一般情况下的逻辑回归分类,经试验,其分类效果在我的测试数据下有90%以上准确度。

    以下代码为了演示方面,只提供了两个特征值,然后加了一个常数项(经过实验,常数项是不可缺少的)。大家在使用自己的数据集的话只需要进行一点小改动即可。

    matlab代码如下:

    clear
    clc
    
    %% 数据准备
    %X = xlsread('C:\Users\user01\Desktop\test.xlsx');
    %二分类 随机生成数据。  200个数据  每个数据2个特征
    data=1*rand(300,2);
    label=zeros(300,1);
    %label(sqrt(data(:,1).^2+data(:,2).^2)<8)=1;
    label((data(:,2)+data(:,1)>1))=1;
    %在data上加常数特征项;
    data=[data,ones(size(data,1),1)];
    
    %打乱循序
    randIndex = randperm(size(data,1));
    data_new=data(randIndex,:);
    label_new=label(randIndex,:);
    
    %80%训练  20%测试
    k=0.8*size(data,1);
    X1=data_new(1:k,:);
    Y1=label_new(1:k,:);
    X2=data_new(k+1:end,:);
    Y2=label_new(k+1:end,:);
    
    [m1,n1] = size(X1);
    [m2,n2] = size(X2);
    Features=size(data,2); %特征个数
     %% 开始训练
    %设定学习率为0.01
    delta=1;  
    lamda=0.2; %正则项系数
    
    theta1=rand(1,Features); 
    %theta1=[.5,.5];
    %%训练模型
    
    %梯度下降算法求解theta(每次都是对全部的数据进行训练)
    num = 300; %最大迭代次数
    L=[];
    while(num)
        dt=zeros(1,Features);
        loss=0;
        for i=1:m1
            xx=X1(i,1:Features);
            yy=Y1(i,1);
            h=1/(1+exp(-(theta1 * xx')));
            dt=dt+(h-yy) * xx;
            loss=loss+ yy*log(h)+(1-yy)*log(1-h);
        end
        loss=-loss/m1;
        L=[L,loss];
        
        theta2=theta1 - delta*dt/m1 - lamda*theta1/m1;
        theta1=theta2;
        num = num - 1;
        
        if loss<0.01
            break;
        end
    end
    figure
    subplot(1,2,1)
    plot(L)
    title('loss')
    
    subplot(1,2,2)
    x=0:0.1:10;
    y=(-theta1(1)*x-theta1(3))/theta1(2);
    plot(x,y,'linewidth',2)
    hold on
    plot(data(label==1,1),data(label==1,2),'ro')
    hold on
    plot(data(label==0,1),data(label==0,2),'go')
    axis([0 1 0 1])
    
    
    %测试数据
    acc=0;
    for i=1:m2
        xx=X2(i,1:Features)';
        yy=Y2(i);
        finil=1/(1+exp(-theta2 * xx));
        if finil>0.5 && yy==1
            acc=acc+1;
        end
        if finil<=0.5 && yy==0
            acc=acc+1;
        end
    end
    acc/m2
    
    %测试结果: 测试准确率为95%。
    

      

     得到的loss曲线为:

     

    分类图像为:

     

    posted on 2019-03-26 17:13 hyb965149985 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/hyb965149985/p/10601418.html

    展开全文
  • MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。 import time import numpy as np import matplotlib.pyplot as plt...
  • 逻辑回归用于二分类任务(Matlab实现)

    千次阅读 多人点赞 2019-08-13 21:56:36
    我在上一篇博客中详细介绍了逻辑回归的相关内容,这篇博客基于上一篇博客中的理论,用一个例子介绍如何将逻辑回归的理论实现到代码中,解决实际的二分类问题,编程工具为Matlab 2018b。 本文使用的例子是安德森鸢尾...

    我在上一篇博客中详细介绍了逻辑回归的相关内容,这篇博客基于上一篇博客中的理论,用一个例子介绍如何将逻辑回归的理论实现到代码中,解决实际的二分类问题,编程工具为Matlab 2018b。

    本文使用的例子是安德森鸢尾花卉数据集(iris),这个数据集中包含150个样本,对应着它的150行,每一行包含这个样本的4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)和样本的类别标签(0或1或2,它们分别代表不同的品种),所以数据集中存储的是一个尺寸为150×5的二维矩阵(数据集中部分样本的信息如下图所示)。由于我们此次只研究二分类问题,所以我们只选用数据集的前100个样本,即类别标签为“0”或“1”的样本。我们的任务是:建立一个逻辑回归分类器,这个分类器可以通过样本的4个特征值来预测样本的标签是“0”还是“1”。

    iris数据集我已经上传到百度云,有需要的小伙伴可以自行下载。

    链接:https://pan.baidu.com/s/15p8-JOoui8taai0tSADNyA 
    提取码:k0cs 

    代码如下:

    % 读取数据集,变量data存储的是一个尺寸为150×5的矩阵
    data = load('iris.data');
    % 只取前100个样本的信息,即前100行,变量useful_data存储的是一个尺寸为100×5的矩阵
    useful_data = data(1:100, :);
    % 将特征与类别标签分开存放
    % 特征存放在变量X中,X存储的是一个尺寸为100×4的矩阵
    % 类别标签存放在变量y中,y存储的是一个尺寸为100×1的矩阵
    X = useful_data(:, 1:4);
    y = useful_data(:, 5);
    % 变量m存储的是变量X的行数,在这里为100
    % 变量n存储的是变量X的列数,在这里为4
    [m,n] = size(X);
    % 在变量X后加一列“1”,便于后面使用矩阵运算简化步骤
    X = [X ones(m, 1)];
    % 初始化模型参数β=(ω,b)为0
    beta = zeros(n+1, 1);
    % 设置梯度下降迭代次数为1500次
    iteration = 1500;
    % 设置学习率为0.01
    alpha = 0.01;
    % 开始循环,用梯度下降更新参数
    for iter = 1 : iteration
        z = X * beta;
        h = 1 ./ (1 + exp(-z));
        error = h - y;
        graident = X' * error;
        beta = beta - alpha / m * graident;
    end

    上面的代码中,for循环里的内容并不是一步步死算的,而是直接根据我上一篇博客中推导出来的公式代进去算的,在这里我直接放公式了,具体推导过程可以参照我上一篇博客

    \small \boldsymbol{\beta }_{j}=\boldsymbol{\beta }_{j}-\frac{\alpha }{m} \frac{\partial (-L(\boldsymbol{\beta }))}{\partial \boldsymbol{\beta }}=\boldsymbol{\beta }_{j}+\frac{\alpha }{m} \frac{\partial (L(\boldsymbol{\beta }))}{\partial \boldsymbol{\beta }}=\boldsymbol{\beta }_{j}+\frac{\alpha }{m}\sum_{i=1}^{m}\boldsymbol{\hat{x_{i}}}(y_{i}-\frac{e^{\boldsymbol{\beta }^T\boldsymbol{\hat{x_{i}}}}}{1+e^{\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}}})=\boldsymbol{\beta }_{j}+\frac{\alpha }{m}\sum_{i=1}^{m}\boldsymbol{\hat{x_{i}}}(y_{i}-h(\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}))=\boldsymbol{\beta }_{j}-\frac{\alpha }{m}\sum_{i=1}^{m}\boldsymbol{\hat{x_{i}}}(h(\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}})-y_{i})

    我运行上面的代码后,结果显示最终学到的参数\small \boldsymbol{\beta }=(0.3297,1.2073,-1.8493,-0.7988,0.2121)

    也就是说,\small z=0.3297x_{1}+1.2073x_{2}-1.8493x_{3}-0.7988x_{4}+0.2121

    也就是说,最终学到的模型为:

    P(y=1\mid \boldsymbol{x})=\frac{e^{0.3297x_{1}+1.2073x_{2}-1.8493x_{3}-0.7988x_{4}+0.2121}}{1+e^{0.3297x_{1}+1.2073x_{2}-1.8493x_{3}-0.7988x_{4}+0.2121}}

    让我们找两个样本来测试一下学得的参数是否能将样本正确分类,比如选择如下两个样本,它们的真实标签分别为“1”和“0”。

    5.70003.80001.70000.30001
    6.20002.20004.50001.50000

    计算过程如下:

    样本①:

    \tiny z=0.3297\times5.7000+1.2073\times3.8000-1.8493\times1.7000-0.7988\times0.3000+0.2121=3.29568

    P(y=1\mid \boldsymbol{x})=\frac{e^{3.29568}}{1+e^{3.29568}}\approx 0.9643

    若取0.5为阈值,小于0.5的标签为“0”,大于0.5的标签为“1”,则网络预测结果正确,且与真实标签非常接近。

    样本②:

    \tiny z=0.3297\times6.2000+1.2073\times2.2000-1.8493\times4.5000-0.7988\times1.5000+0.2121=-4.60775

    P(y=1\mid \boldsymbol{x})=\frac{e^{-4.60775}}{1+e^{-4.60775}}\approx 0.0099

    若取0.5为阈值,小于0.5的标签为“0”,大于0.5的标签为“1”,则网络预测结果正确,且与真实标签非常接近。

    综上所述,逻辑回归分类器可以用于鸢尾花品种的分类,且效果不错。

    展开全文
  • matlab开发-分类逻辑回归。二类和分类的Logistic回归
  • 逻辑回归实现二分类Matlab

    千次阅读 2020-08-17 10:33:37
    逻辑回归实现二分类在SPSS中操作十分简单,但在建模比赛中尽量使用代码更能博取老师眼球。 一、代码实现 核心代码只有两行。结果与SPSS计算出来的一样。 会SPSS的同学可以动手验证一下 clear,clc %注释1:数据准备 ...

    逻辑回归实现二分类在SPSS中操作十分简单,也可以使用matlab代码实现。

    一、代码实现

    核心代码只有两行。结果与SPSS计算出来的一样。
    会SPSS的同学可以动手验证一下

    clear,clc
    %注释1:数据准备
    load matlab.mat     %包含特征数据矩阵X,需要预测的数据矩阵X1
    train_x = X(:,1:4); %自变量特征数据,分类已知
    train_y = X(:,5);   %因变量,一列,只有01
    pre_x = X1(:,1:4);  %自变量特征数据,分类未知,用于预测
    
    %注释2:核心代码
    a =glmfit(train_x,train_y,'binomial', 'link', 'logit');  %得到系数矩阵
    logit_fit = glmval(a,pre_x, 'logit');  %得出概率,大于0.5分到逻辑1,小于0.5分到逻辑0
    
    %注释3:结果整理
    pre_y = zeros(size(logit_fit,1),1); %分类结果
    for i=1:size(logit_fit,1)
        if(logit_fit(i,1)<=0.5)
            pre_y(i,1)=0;
        else
            pre_y(i,1)=1;
        end
    end
    

    二、原始数据

    特征数据矩阵X
    x1		x2		x3		x4		y
    192.00	8.40	7.30	0.55	1.00
    180.00	8.00	6.80	0.59	1.00
    176.00	7.40	7.20	0.60	1.00
    178.00	7.10	7.80	0.92	1.00
    172.00	7.40	7.00	0.89	1.00
    166.00	6.90	7.30	0.93	1.00
    172.00	7.10	7.60	0.92	1.00
    154.00	7.00	7.10	0.88	1.00
    164.00	7.30	7.70	0.70	1.00
    152.00	7.60	7.30	0.69	1.00
    156.00	7.70	7.10	0.69	1.00
    156.00	7.60	7.50	0.67	1.00
    168.00	7.50	7.60	0.73	1.00
    162.00	7.50	7.10	0.83	1.00
    162.00	7.40	7.20	0.85	1.00
    160.00	7.50	7.50	0.86	1.00
    156.00	7.40	7.40	0.84	1.00
    140.00	7.30	7.10	0.87	1.00
    170.00	7.60	7.90	0.88	1.00
    342.00	9.00	9.40	0.75	0.00
    356.00	9.20	9.20	0.75	0.00
    362.00	9.60	9.20	0.74	0.00
    204.00	7.50	9.20	0.77	0.00
    140.00	6.70	7.10	0.72	0.00
    160.00	7.00	7.40	0.81	0.00
    158.00	7.10	7.50	0.79	0.00
    210.00	7.80	8.00	0.82	0.00
    164.00	7.20	7.00	0.80	0.00
    190.00	7.50	8.10	0.74	0.00
    142.00	7.60	7.80	0.75	0.00
    150.00	7.10	7.90	0.75	0.00
    160.00	7.10	7.60	0.76	0.00
    154.00	7.30	7.30	0.79	0.00
    158.00	7.20	7.80	0.77	0.00
    144.00	6.80	7.40	0.75	0.00
    154.00	7.10	7.50	0.78	0.00
    180.00	7.60	8.20	0.79	0.00
    154.00	7.20	7.20	0.82	0.00
    
    需要预测的数据矩阵X1
    x1		x2		x3		x4
    158.00	7.10	7.60	0.72	
    190.00	7.50	7.90	0.77	
    189.00	7.60	7.70	0.77	
    160.00	7.90	6.90	0.65	
    
    展开全文
  • LogisticRegression 逻辑斯蒂回归 matlab 可运行 内含测试数据
  • 逻辑回归matlab代码机器学习数字分类项目 数据集基于数据集,并带有经过修改的图像。 提供完整说明 实施: 逻辑回归Matlab) 前馈神经网络(Python) 线性SVM(来自) 卷积神经网络() ===此项目使用python 2.7。...
  • 逻辑回归matlab代码预测PRNG 使用机器学习技术预测伪随机数生成器 要运行一个学习者的单个实例,请使用exampleKNN.m脚本(例如,运行KNN)。 要重新运行实验,请运行deployConfig.m。 我们总共实施了五名学习者: ...
  • matlab 线性/逻辑回归

    2019-06-04 15:51:21
    基于matlab实现基础的线性回归以及逻辑回归,内附全代码及相关测试数据
  • matlab逻辑回归建立预测模型

    千次阅读 2018-05-23 19:08:48
    对下列数据进行回归:clearclc%读人口数据Y = [33815 33981 34004 34165 34212 34327 34344 34458 34498 34476 34483 34488 34513 34497 34511 34520 34507 34509 34521 34513 34515 34517 34519 34519 34521 34521 ...


    对下列数据进行回归:


    clear
    clc
    %读人口数据
    Y = [33815 33981 34004 34165 34212 34327 34344 34458 34498 34476 34483 34488 34513 34497 34511 34520 34507 34509 34521 34513 34515 34517 34519 34519 34521 34521 34523 34525 34525 34527]
    %读时间变量
    T = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30]
    %线性处理
    for t = 1:30,
        x(t) = exp(-t);
        y(t) = 1/Y(t);
    end
    %计算回归系数B
    c = zeros(30,1)+1;%产生一个30X1的矩阵全部为0的矩阵再加1
    X = [c,x'];
    B = inv(X'*X)*X'*y'%inv是求逆矩阵,最小二乘解的矩阵公式对于问题XB = Y
    for i = 1:30
        z(i) = B(1,1)+B(2,1)*x(i);%回归拟合值
        s(i) = y(i)-sum(y)/30;%离差
        w(i) = z(i)-y(i);%误差
    end
    S = s*s';%离差平方和
    Q = w*w';%误差平方和
    U = S-Q;%回归平方和
    F = 28*U/Q
    for j = 1:30,
        Y(j) = 1/(B(1,1)+B(2,1)*exp(- j));
    end
    plot(T,Y)

    注:我们所需要输出B和F值以及图像,所以后面不加分号。

    结果:





    展开全文
  • 机器学习(一):matlab逻辑回归

    千次阅读 2019-04-17 13:10:29
    最近开了新的坑 Emmmmmm这个坑有点深 0x01 机器学习理论 目前学到的机器学习都是给定一类数据,然后对其进行预测。对于预测算法,其基本思想就是设定一条曲线或直线,计算其值与... 逻辑回归主要用于分类,即给...
  • 逻辑斯蒂回归实例-matlab

    热门讨论 2014-06-30 14:41:23
    机器学习课程作业,自己编写matlab源代码,运行LogisticRegression即可
  • 下面使用逻辑回归实现多分类问题:识别手写的阿拉伯数字(0-9)   数据加载到Matlab中的格式如下:   一共有5000个训练样本,每个训练样本是400维的列向量(20X20像素的 grayscale i
  • 在这里讲述如何通过MATLAB的代码实现多元logistic回归模型,对于想用MATLAB来实现多元logistic回归模型的朋友有很大的帮助。
  • 【模式识别小作业】逻辑回归模型(logistic regression model)+Matlab实现+UCI的Iris和Seeds数据集+分类问题 包含:完整全套代码+readme+报告
  • 五参数逻辑回归MatLab cftool函数的一个大漏洞是缺少Logistic函数。 特别是,五参数对数回归或5PL非线性回归模型通常用于生物测定或免疫测定(例如ELISA,RIA,IRMA或剂量React曲线)中的曲线拟合分析。 标准剂量...
  • 基于matlab逻辑回归示例

    千次阅读 2020-02-21 17:31:58
    最近研究机器学习算法,属于小白,学习了“寒小阳”博主的文章(地址:http://blog.csdn.net/han_xiaoyang/article/details/49123419)后,对机器学习的逻辑回归有了个大概的认识,再借助另一位博主“ Earendil ”...
  • 逻辑回归matlab代码使用Swift和fmincg进行Logistic回归 这是一个非常简单的示例,说明了如何使用著名的Iris数据集和共轭梯度优化器在Swift中实现逻辑回归。 最近更新为Swift 4.2(Xcode 10.1)。 基于安德鲁·伍...
  • LR逻辑回归多分类

    2020-03-23 18:22:32
    LR逻辑回归算法应用于多分类逻辑回归LR算法介绍逻辑回归LR的多分类方法方法1:1对方法2:1对1方法3:softmax逻辑回归LR的matlab程序 逻辑回归LR算法介绍 逻辑回归算法,常用于二分类{0,1},matlab的有相应的函数...
  • 此提交将加载示例数据并调用通用函数对逻辑回归执行 LASSO 并进行预测。 有来自http://au.mathworks.com/help/stats/lasso-regularization-of-generalized-linear-models.html 的代码用法:matlab < call_generic...
  • 逻辑回归分类器 可训练通用逻辑回归分类器的实现和手写数字识别的应用。 分类器和应用程序都是用 Java 8 编写的。 分类器 分类器使用爬山算法最大化对数似然,作为优化权重的方法。 该实现允许配置参数 heta(权重...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,034
精华内容 2,413
关键字:

matlab逻辑回归多分类

matlab 订阅