嗨,我想对回归技术进行全面分析,因此将继续编辑这个问题 . 我正在尝试使用Matlab中提供的技术来解决回归问题 . 理想情况下,我想看看诸如此类的技巧
线性回归
Logistic回归
贝叶斯回归
支持向量回归
回归的高斯过程
问题陈述
给定数据 X 和 Y ,其大小为 333x128 和 333x1 ,其中 333 是训练示例的数量, 128 是要素尺寸 . 我正在解决的问题是回归问题和 not a classification one . 我打算在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 / glmval和fitglm / 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)
What is the difference between the two operations ?
此外 glmfit 有一个名为 distr 和 link 的术语 . 这种分布是什么意思?如何选择最佳分销?对于上面的例子,仅基于数据如何估计apriori的分布?
另外据我所知,链接功能用于 Build 线性模型和响应变量之间的链接 . 这是否意味着逻辑回归是广义线性回归模型的子集?我在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中明确指出 As such it is not a classification method . 但是基于答案here和here在我看来 logistic regression can only be used for classification ?
我也经历了mnrfit / mnrval教程,但他们也处理了分类问题 .
请根据我的上述数据提供一个小例子来说明逻辑回归如何用于回归?