2

我想训练输出是连续数字的回归模型(不是分类)。

假设我有输入变量 X,范围在 -70 到 70 之间。我有输出变量 Y,范围在 -5 到 5 之间。X 有 39 个特征,Y 有 16 个特征,每个特征有 50,000 个示例。然后我想用python中的深度信念网络(DBN)训练他们。

我在 theano 主页中使用了用 MNIST 数据(分类)描述 DBN 的脚本。http://deeplearning.net/tutorial/DBN.html

你能告诉我为了应用我上面解释的回归问题我必须改变哪些具体的行吗?

例如,我必须改变...

  1. sigmoid 函数到 tanh 函数。: 我听说 tanh 激活函数在回归中比 sigmoid 效果更好。正确的?
  2. 而不是使用负对数似然,我必须使用最小二乘误差......?
  3. zscore的输入和输出数据归一化?

如果您有任何解决此问题的想法,请告诉我......大多数机器学习示例都是基于 MNIST 手数分类。如果您向我推荐一些不错的博客或主页,我会很高兴,在那里我可以获得与回归相关的有用信息。

谢谢你提前。

4

1 回答 1

0
@hyungwon yang: 

我还没有看到python代码,但我认为以下内容会很有用:

sigmoid 函数到 tanh 函数:没有必要,许多出版物使用 sigmoid 进行非线性回归。坦率地说,选择是根据您拥有的数据类型进行的。我将 sigmoid 用于许多非线性模型,它对我有用。

最小二乘误差:您可以通过内置的 Matlab 函数 regress 来执行此操作,而不是将其与这么多参数混淆。

规范化:您可以进行最小-最大规范化(请参阅 Charu Agarwal 的数据挖掘),我在 Matlab 中的实现如下:

%inputData: Is your N samples * of first feature, you have to iteratively do %this process for each and every feature.
function normOut = NormaliseAnyData (inputData)
denominator = (max(inputData) - min (inputData));
numerator = (inputData - min(inputData)); 
normOut = numerator/denominator;
end

希望能帮助到你。如果您还有其他问题,请告诉我。

于 2015-11-17T14:44:18.817 回答