matlab环境下的回归算法分析

时间:2016-05-01 10:40:37

标签: matlab regression svm linear-regression logistic-regression

您好我想对回归技术进行全面分析,因此将继续编辑此问题。我正在尝试使用Matlab中提供的技术来解决回归问题。理想情况下,我想看看

等技术
  1. 线性回归
  2. Logistic回归
  3. 贝叶斯回归
  4. 支持向量回归
  5. 回归的高斯过程
  6. 问题陈述

    根据大小XY的数据333x128333x1,其中333是培训示例的数量,128是特征尺寸。我要解决的问题是回归问题,不是分类问题。我打算在Matlab中完成上述所有工作。

    线性回归

    线性回归的代码如下:它从“hald”数据集获取输入数据,并将前10个元素用于训练目的,接下来的3个元素用于测试目的。最后一行打印输出 即预测值和实际标签。

    clc; clear all; close all;
    load hald
    X = ingredients; % Predictor variables
    y = heat; % Response
    mdl = fitlm(X(1:10,:),y(1:10,:));
    predicted_values = feval(mdl,X(11:end,:));
    [y(11:end,:) predicted_values]
    

    输出为:

    ans =
       83.8000   80.2845
      113.3000  112.8545
      109.4000  112.5293
    

    然而,任何人都可以向我解释广义线性回归模型的含义吗?在matlab中,有两个专门针对此的命令:glmfit / glmvalfitglm / feval

    应用广义线性回归模型的代码如下:

    mdl = fitglm(X(1:10,:),y(1:10,:),'quadratic');
    predicted_values = feval(mdl,X(11:end,:));
    error = sum((y(11:end,:)-predicted_values).^2)
    
    [b, dev] = glmfit(X(1:10,:),y(1:10,:),'normal','link','identity');
    predicted_values = glmval(b,X(11:end,:),'identity');
    error = sum((y(11:end,:)-predicted_values).^2)
    

    这两项操作有什么区别?

    此外,glmfit还有一个名为distrlink的字词。这种分布意味着什么?如何选择最佳分销?对于上面的例子,仅基于数据如何估计apriori的分布?

    据我所知,链接功能用于在线性模型和响应变量之间建立链接。这是否意味着逻辑回归是广义线性回归模型的子集?我在wiki link阅读了详细信息,但无法澄清我的怀疑。

    支持向量回归

    线性回归的代码如下:这里我可以选择标准化数据。我选择的内核是具有自动缩放的rbf内核。许多选项如多项式内核,高斯内核,线性等也可用。

    mdl = fitrsvm(X(1:10,:),y(1:10,:),'KernelFunction','rbf','KernelScale','auto','Standardize',true);    
    predicted_values = predict(mdl,X(11:end,:));
    

    Logistic回归

    我无法使用逻辑回归来解决此回归问题。我有各种各样的来源,他们总是解决了分类问题,但我的标签空间是连续的而不是离散的。在此wiki article中明确指出因此它不是分类方法。然而 基于答案herehere,在我看来,逻辑回归只能用于分类?

    我还浏览了mnrfit / mnrval教程,但也处理了分类问题。

    请根据我的上述数据提供一个小例子来说明逻辑回归如何用于回归?

0 个答案:

没有答案