比较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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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