精华内容
下载资源
问答
  • 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自带工具箱对二分类数据进行逻辑回归预测1和0的概率
  • 在这里讲述如何通过MATLAB的代码实现多元logistic回归模型,对于想用MATLAB来实现多元logistic回归模型的朋友有很大的帮助。
  • 该代码是主要基于tensorflow框架下的逻辑回归模型,使用经典的梯度下降算法来最小化误差,加了L2正则化以减小过拟合。主要是针对没有测试集的数据,利用五折交叉验证并重复十次来计算AUC值,以评估模型
  • LogisticRegression 逻辑斯蒂回归 matlab 可运行 内含测试数据
  • 输入:特征和标签->模型->回归系数->预测:分类结果 功能:逻辑回归实现二分类
  • matlab实现的多分类逻辑回归

    热门讨论 2015-06-22 08:50:21
    matlab实现的多分类逻辑回归,用于手写数字识别
  • MATLAB回归预测模型的结果展示和效果检验

    千次阅读 多人点赞 2020-09-25 10:07:32
    回归分析的结果展示 一致的有回归结果对比图 RMSE 回归图 误差直方图

    回归方程、神经网络等预测模型的结果展示,主要针对线性回归。

    一致的有

    回归结果对比图

    对于回归预测模型,最直观的效果展示就是其预测值和真实值的对比,将二者画在同一个坐标系中,可以直观感受二者的差异。对于线性回归模型,同时计算了判定系数R方,其主要作用是评估回归模型对因变量y产生变化的解释程度,也即判定系数R方是评估回归模型好坏的指标。R平方取值范围也为0~1,通常以百分数表示。比如回归模型的R平方等于0.7,那么表示,此回归模型对预测结果的可解释程度为70%。

    一般认为,R平方大于0.75,表示模型拟合度很好,可解释程度较高;R平方小于0.5,表示模型拟合有问题,不宜采用进行回归分析。

    %% 绘制预测值和真实值的对比
    N = size(a,1);% 样本个数
    yz = y0;% 真实值
    yc = y1;% 预测值    
    %计算R方
    R2 = (N*sum(yc.*yz)-sum(yc)*sum(yz))^2/((N*sum((yc).^2)-(sum(yc))^2)*(N*sum((yz).^2)-(sum(yz))^2)); 
    figure
    plot(1:N,yz,'b:*',1:N,yc,'r-o')
    legend('真实值','预测值','location','best')
    xlabel('预测样本')
    ylabel('值')
    string = {'因变量预测结果对比';['R^2=' num2str(R2)]};
    title(string)
    

    通过下图,可以看到回归模型的效果并不咋地。
    在这里插入图片描述

    RMSE

    均方误差MSE(mean-square error),是反映预测值与真实值之间差异程度的一种度量,计算出预测模型结果和真实值的均方误差,能够了解模型在进行预测时的表现。
    在这里插入图片描述

    范围[0,+∞),当预测值与真实值完全相同时为0,误差越大,该值越大。均方根误差RMSE(Root Mean Square Error)是其开平方的根。

    yz = y0;% 真实值
    yc = y1;% 预测值   
    perf = mse(yz,yc)% 计算均方误差
    

    回归图

    衡量预测模型效果的另一个方法是回归图,下面绘制了预测结果的回归图。如果模型能够很好地预测出数据,则图中的输出-目标线性拟合线(蓝色实线)与图中的虚线应该十分接近甚至重合。如果不是这样,则需要进一步改进模型。可以看到,图中的蓝线和虚线并不是十分接近,所以预测结果不咋地。

    yz = y0;% 真实值
    yc = y1;% 预测值  
    figure;
    plotregression(yz,yc,['回归图'])
    

    在这里插入图片描述

    误差直方图

    衡量预测模型预测效果的第三个方法是误差直方图。该图可显示误差大小的分布方式。通常,对于效果较好的模型,大多数的误差都接近于0,很少有误差大幅偏离。可以看到这里的误差直方都快偏到它姥姥家了,同样说明预测效果不理想。

    e = yz-yc; % 计算误差
    figure;
    ploterrhist(e,['误差直方图'])
    

    在这里插入图片描述

    展开全文
  • 逻辑回归一般指logistic回归。logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。
  • 可通过这4个属性预测鸢尾花属于3个种类的哪一类。所以本项目是利用lr方法进行 多分类处理。引用Iris数据集的方法主要有在sklearn的sklearn库中导入iris数据集和下载官方的iris.csv文 件。本项目使用后一种获取数据的...
  • 本文的目的是完成一个逻辑回归分析。使你对分析步骤和思维过程有一个基本概念。 library(tidyverse) library(broom) 这些数据来自一项正在进行的对镇居民的心血管研究。其目的是预测一个病人是否有未来10年的...

    原文链接:http://tecdat.cn/?p=22410 

    原文出处:拓端数据部落公众号

    本文的目的是完成一个逻辑回归分析。使你对分析步骤和思维过程有一个基本概念。

    library(tidyverse)
    library(broom)
    
    

    这些数据来自一项正在进行的对镇居民的心血管研究。其目的是预测一个病人是否有未来10年的冠心病风险。该数据集包括以下内容。

    • 男性:0=女性;1=男性
    • 年龄。
    • 教育。1 = 高中以下;2 = 高中;3 = 大学或职业学校;4 = 大学以上
    • 当前是否吸烟。0=不吸烟;1=吸烟者
    • cigsPerDay: 每天抽的烟数量(估计平均)。
    • BPMeds: 0 = 不服用降压药;1 = 正在服用降压药
    • 中风。0 = 家族史中不存在中风;1 = 家族史中存在中风
    • 高血压。0 =高血压在家族史上不流行;1 =高血压在家族史上流行
    • 糖尿病:0 = 没有;1 = 有
    • totChol: 总胆固醇(mgdL)
    • sysBP: 收缩压(mmHg)
    • diaBP: 舒张压(mmHg)
    • BMI: 体重指数
    • 心率 
    • 葡萄糖:总葡萄糖mgdL
    • TenYearCHD: 0 = 患者没有未来10年冠心病的风险; 1 = 患者有未来10年冠心病的风险

    加载并准备数据

    read_csv("framingham.csv") %>%
      drop_na() %>% #删除具有缺失值的观察值
      ageCent = age - mean(age), 
      totCholCent = totChol - mean(totChol), 
    

    拟合逻辑回归模型

    glm(TenYearCHD ~ age +  Smoker +  CholCent, 
                  data = data, family = binomial)
    

    预测

    对于新病人

     data_frame(ageCent = (60 - 49.552), 
                     totCholCent = (263 - 236.848), 
    

    预测对数几率

    predict(risk_m, x0) 
    

     

    预测概率

    根据这个概率,你是否认为这个病人在未来10年内有患冠心病的高风险?为什么?

    
    risk

    混淆矩阵

    
    risk_m %>%
      group_by(TenYearCHD, risk_predict) %>%
      kable(format="markdown")

    mutate( predict = if_else(.fitted > threshold, "1: Yes", "0: No")) 

    有多大比例的观察结果被错误分类?
    依靠混淆矩阵来评估模型的准确性有什么缺点?

    ROC曲线

    ggplot(risk_m_aug, 
      oc(n.cuts = 10, labelround = 3) + 
      geom_abline(intercept = 0) + 
     

    auc(roc )$AUC
    

     

    一位医生计划使用你的模型的结果来帮助选择病人参加一个新的心脏病预防计划。她问你哪个阈值最适合为这个项目选择病人。根据ROC曲线,你会向医生推荐哪个阈值?为什么?

    假设

    为什么我们不绘制原始残差?

    ggplot(data = risk aes(x = .fitted, y = .resid)) +
      labs(x = "预测值", y = "原始残差")

    分级的残差图

     plot(x =  fitted, y =  resid,
                    xlab = "预测概率", 
                    main = "分级后的残值与预测值的对比", 
       

    ## # A tibble: 2 x 2
    ##   currentSmoker mean_resid
    ##   <fct>              <dbl>
    ## 1 0              -2.95e-14
    ## 2 1              -2.42e-14

    检查假设:

    - 线性?- 随机性?- 独立性?

    系数的推断

    currentSmoker1的测试统计量是如何计算的?
    在统计学上,totalCholCent是否是预测一个人患冠心病高风险的重要因素?
    用检验统计量和P值来证明你的答案。
    用置信区间说明你的答案。

    偏离偏差检验

     glm(TenYearCHD ~ ageCent + currentSmoker + totChol, 
                  data = heart_data, family = binomial)
     

    anova 
    

    AIC

    根据偏离偏差检验,你会选择哪个模型?
    基于AIC,你会选择哪个模型?

    使用step逐步回归选择模型

    step(full_model )

     

      kable(format = "markdown" )


    最受欢迎的见解

    1.R语言多元Logistic逻辑回归 应用案例

    2.面板平滑转移回归(PSTR)分析案例实现

    3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

    4.R语言泊松Poisson回归模型分析案例

    5.R语言回归中的Hosmer-Lemeshow拟合优度检验

    6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

    7.在R语言中实现Logistic逻辑回归

    8.python用线性回归预测股票价格

    9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

    展开全文
  • 逻辑回归二分类用到的预测函数为其中,h为预测函数(大于0.5为一类,小于等于0.5为另一类)。θ为各个特征的参数。θ=[θ1,θ2,θ3...]T损失函数J(θ)为利用梯度下降算法进行参数的更新公式如下:其中,α是学习率参数...

    逻辑回归二分类

    用到的预测函数为

    d4339c544a3112f84819b12d057e1da6.png

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

    损失函数J(θ)为

    46f764f806817b57ebaf31097954c50e.png

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

    1363fa42f9c15a60c8be61de2a3cac81.png

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

    用上述三个公式即可写出一般情况下的逻辑回归分类,经试验,其分类效果在我的测试数据下有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曲线为:

    90068ae1a24e313fa1dd8f8f76520674.png

    分类图像为:

    646a1bedae1d60c965c312ab0207aa35.png

    逻辑回归模型(Logistic Regression)及Python实现

    逻辑回归模型(Logistic Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳 ...

    斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression

    Logistic Regression 逻辑回归 1.模型 逻辑回归解决的是分类问题,并且是二元分类问题(binary classification),y只有0,1两个取值.对于分类问题使用线性回归不 ...

    分类和逻辑回归&lpar;Classification and logistic regression&rpar;

    分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里.首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例 ...

    机器学习算法笔记1&lowbar;2&colon;分类和逻辑回归&lpar;Classification and Logistic regression&rpar;

    形式: 採用sigmoid函数: g(z)=11+e−z 其导数为g′(z)=(1−g(z))g(z) 如果: 即: 若有m个样本,则似然函数形式是: 对数形式: 採用梯度上升法求其最大值 求导: 更 ...

    斯坦福机器学习视频笔记 Week3 逻辑回归与正则化 Logistic Regression and Regularization

    我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost fun ...

    逻辑回归原理 面试 Logistic Regression

    逻辑回归是假设数据服从独立且服从伯努利分布,多用于二分类场景,应用极大似然估计构造损失函数,并使用梯度下降法对参数进行估计.

    吴恩达深度学习:2&period;9逻辑回归梯度下降法&lpar;Logistic Regression Gradient descent&rpar;

    1.回顾logistic回归,下式中a是逻辑回归的输出,y是样本的真值标签值 . (1)现在写出该样本的偏导数流程图.假设这个样本只有两个特征x1和x2, 为了计算z,我们需要输入参数w1.w2和b还 ...

    Tensorflow 实现稠密输入数据的逻辑回归二分类

    首先 实现一个尽可能少调用tf.nn模块儿的,自己手写相关的function     import tensorflow as tf import numpy as np import melt_da ...

    随机推荐

    win7将 esc与 capslock 互换

    一天手软,于是买了一个机械键盘.cherry g80-3494 红轴各方面都不错就是有一个问题我经常用vim,其中esc.及F键区离主键盘区实在是太远了. 习惯于vim模式的人都有一种懒症,就是手指非 ...

    Spring的注解方式

    在Java代码中可以使用@Resource或者@Autowired注解方式来经行注入.虽然@Resource和@Autowired都可以来完成注入依赖,但它们之间是有区别的. a.@Resource默 ...

    Java多线程原理

    学过Java的人都知道,Java是少数的集中支持多线程的语言之一,大多数的语言智能运行单独的一个程序块,无法同时运行不同的多个程序块,Java的多线程机制弥补了这个缺憾,他可以让不同的程序块一起运行, ...

    &lt&semi; IOS &gt&semi; IOS适配,简单的分析解决一下

    版权:张英堂 欢迎转载,转载请注明出处. 做的项目很多,一到适配的时候头就大了,IOS6,7的适配,屏幕的适配,当然还有下一步要出4.7屏幕,也要做适配....悲剧的移动端的人员. 怎么做一个通用的适 ...

    &lbrack; An Ac a Day &Hat;&lowbar;&Hat; &rsqb; CodeForces 426C Sereja and Swaps 优先队列

    题意: 给你一个有n个数的序列 取一个区间 这个区间内的数可以与区间外的值交换k次 问这样的区间最大值是多少 思路: 看数据是200 时间复杂度O(n*n) 应该可以暴力 顺便学习一下优先队列 枚举区 ...

    Linux TTY驱动--Uart&lowbar;driver底层【转】

    转自:http://blog.csdn.net/sharecode/article/details/9196591 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux 中将串口驱动进行了 ...

    jsp jstl标签库核心标签

    JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...

    php中的declare

    &lbrack;luogu2668&rsqb; 斗地主

    题面 ​ 这好像就是道**暴搜题, 由于可以回溯, 所以顺序其实没有多大的关系, 见代码吧... 具体代码 #include #include

    Java集合之HashSet&sol;TreeSet原理

    Set集合 1.HashSet  只去重复, 没有顺序  HashSet的add方法会调用hashCode和equals, 所以存储在HashSet中的对象需要重写这两个方法. 2.TreeSet   ...

    展开全文
  • 什么是逻辑回归逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。Logistic回归虽然名字里带“回归”,...
  • matlab终止以下代码逻辑回归 分类:离散值输出 代码在Octave版本4.2.1上成功执行 逻辑回归 在该项目中,我实现了逻辑回归并将其应用于两个不同的数据集。 要开始使用该代码,您将需要下载代码并将其内容解压缩到您...
  • 我将试图从感知机的基础上说明逻辑回归的一般性原理和学习及预测方法,其中缺少一些必要的证明,包括了一个二分类问题的实例。其中关于感知机的实验在 机器学习 专栏中有介绍。 从感知机到逻辑斯蒂回归 感知机模型:...
  • 而排序类分类模型中最常使用的算法是逻辑回归 3. 数据理解 (1) 属性表征信息:在分析个人客户时,又称人口统计信息。主要涉及最基本的性别、出生日期等信息。这类指标对客户的行为预测并不具有因果关系,只是根据...
  • 逻辑回归原理及matlab实现

    万次阅读 2019-01-08 13:54:46
    对于某些分类问题,自变量可能是连续的,但是因变量却可能是离散的,例如:根据肿瘤大小判断该肿瘤是否是良性。...因此,逻辑回归(logistic regression)就成为了一个解决分类问题的好方法。 ...
  • 逻辑回归用于二分类任务(Matlab实现)

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

    万次阅读 多人点赞 2017-09-14 20:50:25
    ogistic regression属于概率型非线性回归,它是研究...对于线性回归分析,由于应变量Y是一个二值变量(通常取值1或0),不满足应用条件,尤其当各因素都处于低水平或高水平时,预测值Y值可能超出0~1范围,出现不合理都
  • 一篇九月份建模比赛对我帮助很大的文章,特此转载---------------------------------------------------------------------------------------------------------------logistic regression属于概率型非线性回归,它...
  • 【吴恩达 机器学习】 逻辑回归算法Matlab实现

    万次阅读 多人点赞 2018-06-05 17:01:47
    逻辑回归(Logistic Regression),Logistic function, Sigmoid function是同一个意思,函数形式(假设函数形式)如下: 逻辑回归是二分类算法,h&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;θ&...
  • 基于Octave/Matlab的二元逻辑回归(logistic regression)算法 本博文基于吴恩达老师的机器学习网课,是对作业代码进行简化和补充完整后的实现。 逻辑回归算法的基本思想 sigmoid函数 在分类问题中,我们需要根据...
  • 细节增强的matlab代码
  • 利用梯度下降对逻辑回归模型的代价函数求取最小解,实现模型参数的优化 1.代价函数(Cost Function) 2.梯度下降(Gradient Descent) 3.高级优化(Advanced Optimization) 4.多类别分类(Multiclass Classification)...
  • 在这里,我们修改了 4 种流行的分类/回归算法的目标函数,并提供了逻辑回归、岭回归、SVM 和 SVR 的特征加权版本,所有这些都适用于线性情况。 SVM 和 SVR 基于我们修改过的 liblinear 工具箱,它包含在这个包中。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,321
精华内容 1,328
关键字:

matlab逻辑回归预测模型

matlab 订阅