Python 如何在机器学习中训练连续输出(回归)
我想训练输出为连续数的回归模型(而不是分类)。 假设我有一个输入变量X,它的范围在-70到70之间。 我有输出变量Y,它的范围在-5到5之间。X有39个特征,Y有16个特征,每个特征有50000个示例。然后我想用python中的深层信念网络(DBN)来训练他们 我使用了theano主页中的脚本,该脚本使用MNIST数据(分类)描述DBN 您能告诉我,为了应用我上面解释的回归问题,我必须更改哪些具体的行吗 例如,我必须改变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
@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回归等等。否则你会失败的,我保证。非常感谢你。我知道我在那里做什么,但我想听听更具启发性的评论。你给了我一些!!