Python 如何在机器学习中训练连续输出(回归)

Python 如何在机器学习中训练连续输出(回归),python,machine-learning,regression,rbm,dbn,Python,Machine Learning,Regression,Rbm,Dbn,我想训练输出为连续数的回归模型(而不是分类)。 假设我有一个输入变量X,它的范围在-70到70之间。 我有输出变量Y,它的范围在-5到5之间。X有39个特征,Y有16个特征,每个特征有50000个示例。然后我想用python中的深层信念网络(DBN)来训练他们 我使用了theano主页中的脚本,该脚本使用MNIST数据(分类)描述DBN 您能告诉我,为了应用我上面解释的回归问题,我必须更改哪些具体的行吗 例如,我必须改变 从sigmoid函数到tanh函数:我听说tanh激活函数在回归中比sig

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

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

我使用了theano主页中的脚本,该脚本使用MNIST数据(分类)描述DBN

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

例如,我必须改变

  • 从sigmoid函数到tanh函数:我听说tanh激活函数在回归中比sigmoid更有效。对吧?
  • 而不是使用负对数似然,我必须使用最小二乘误差
  • 通过zscore实现输入和输出数据规范化
  • 请让我知道,如果你有任何想法来解决这个问题。。。 大多数机器学习示例都基于MNIST手数字分类。如果你能给我推荐一些不错的博客或主页,我会很高兴,在那里我可以获得与回归相关的有用信息

    提前谢谢你

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

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

    最小平方误差:您可以通过内置Matlab函数回归来执行此操作,而不是将其与许多参数混淆

    归一化:您可以进行最小-最大归一化(参考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
    

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

    只是一个一般性的想法-不要从深层模型开始学习机器学习。这就像从量子力学开始学习物理。每个在新手教程中包含深度学习的人根本不知道自己在做什么(很可能是新手自己)。简言之,如果你问这样的问题,那么深度模型不是一个好主意,首先是线性回归,然后是非线性类型,如核回归、knn回归、rf回归等等。否则你会失败的,我保证。非常感谢你。我知道我在那里做什么,但我想听听更具启发性的评论。你给了我一些!!