在 R 中创建一个更准确的线性回归模型

如何解决在 R 中创建一个更准确的线性回归模型

我正在尝试使用钻石数据集和 r 编程来创建一个简单的模型来预测钻石价格。即使预测值与真实数据集相差 100,其预测准确度也非常高,即 97.1%。我想创建一个线性回归模型,以提供更好的准确性。

数据集: https://www.kaggle.com/shivam2503/diamonds

代码

setwd ("C:/akash/study videos/virginia")
akash = read.csv("diamonds.csv")
#summary(akash)
ind = sample(2,nrow(akash),replace = TRUE,prob = c(0.8,0.2)) 
train = akash[ind==1,]
test = akash[ind==2,]
mod = step(lm(log(price)~.,data=train))
summary(mod)
predicted = predict(mod,newdata = test)
mon = round(exp(predicted),0)
head(mon)
#head(test)
View(akash)

输出如下。

> summary(mod)

Call:
lm(formula = log(price) ~ X + carat + cut + color + clarity + 
    depth + table + x + y + z,data = train)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.1859 -0.0917  0.0034  0.0915  9.8090 

Coefficients:
               Estimate Std. Error  t value Pr(>|t|)    
(Intercept)  -2.791e+00  7.432e-02  -37.553  < 2e-16 ***
X            -1.331e-06  6.223e-08  -21.395  < 2e-16 ***
carat        -5.148e-01  8.663e-03  -59.419  < 2e-16 ***
cutGood       8.499e-02  6.110e-03   13.910  < 2e-16 ***
cutIdeal      1.525e-01  6.089e-03   25.055  < 2e-16 ***
cutPremium    1.049e-01  5.870e-03   17.864  < 2e-16 ***
cutVery Good  1.196e-01  5.874e-03   20.366  < 2e-16 ***
colorE       -5.672e-02  3.222e-03  -17.602  < 2e-16 ***
colorF       -8.780e-02  3.267e-03  -26.877  < 2e-16 ***
colorG       -1.563e-01  3.195e-03  -48.901  < 2e-16 ***
colorH       -2.597e-01  3.399e-03  -76.404  < 2e-16 ***
colorI       -3.855e-01  3.810e-03 -101.196  < 2e-16 ***
colorJ       -5.227e-01  4.709e-03 -111.008  < 2e-16 ***
clarityIF     1.093e+00  9.189e-03  118.966  < 2e-16 ***
claritySI1    6.068e-01  7.858e-03   77.223  < 2e-16 ***
claritySI2    4.383e-01  7.899e-03   55.486  < 2e-16 ***
clarityVS1    8.165e-01  8.026e-03  101.733  < 2e-16 ***
clarityVS2    7.491e-01  7.899e-03   94.838  < 2e-16 ***
clarityVVS1   1.002e+00  8.503e-03  117.855  < 2e-16 ***
clarityVVS2   9.359e-01  8.259e-03  113.319  < 2e-16 ***
depth         5.000e-02  8.168e-04   61.216  < 2e-16 ***
table         9.379e-03  5.298e-04   17.704  < 2e-16 ***
x             1.124e+00  5.644e-03  199.152  < 2e-16 ***
y             2.800e-02  3.125e-03    8.962  < 2e-16 ***
z             3.685e-02  5.731e-03    6.429  1.3e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1818 on 42968 degrees of freedom
Multiple R-squared:  0.9679,Adjusted R-squared:  0.9679 
F-statistic: 5.398e+04 on 24 and 42968 DF,p-value: < 2.2e-16

> head(mon)
  9  14  28  31  32  39 
475 346 435 479 496 595 

如果可以的话,请您解释一下考虑了哪些参数?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?