比较Octave机器学习结果与R结果

R代码:

my.data <- mtcars[,c(1,3)] # 仅包含两列mpg和disp

lm(mpg~disp,data=my.data) # R代码用于拟合回归线

R输出:

Call:  lm(formula = mpg ~ disp, data = my.data)Coefficients:  (Intercept)         disp       29.59985     -0.04122  

将R数据集写入磁盘文件

write.table(my.data,'~/Downloads/mtcars',sep=",",row.name=F,col.names=F) 

Octave代码:

cd ~/Downloadsdata=load('mtcars') # 使用R数据集拟合模型x=data(:,2)y=data(:,1) cd ~/Dropbox/ML/mlclass-ex1-004/mlclass-ex1 %无任何错误xn=featureNormalize(x) # 使用均值和标准差进行特征归一化x1=[ones(length(x),1),xn]theta=zeros(size(x1,2),1)g=gradientDescent(x1,y,theta,alpha=.1,10000)

g的输出为:

g =20.0906-5.0277

如果你查看截距和disp的系数,你会发现R的输出和Octave的输出并不接近。

有谁知道这种差异从何而来?哪个是正确的?


回答:

你在Octave代码中对特征进行了归一化。在R中做同样的处理会得到相似的结果。

R> mtcars$normalized_disp <- as.numeric(scale(mtcars$disp))R> lm(mpg ~ normalized_disp, data = mtcars)Call:lm(formula = mpg ~ normalized_disp, data = mtcars)Coefficients:    (Intercept)  normalized_disp           20.091           -5.108  

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注