我对数据科学完全陌生,希望缩小搜索范围并减少解决以下问题所需的学习曲线
我有一个包含 7 列的数据集,A 列(所有正小数)是我想要最大化的数据点。B 列和 C 列是布尔值,其余列是正负十进制数的组合。我想从所有列中找到一些关系和见解,以便我可以最大化 A 列的总和。
我对数据科学完全陌生,希望缩小搜索范围并减少解决以下问题所需的学习曲线
我有一个包含 7 列的数据集,A 列(所有正小数)是我想要最大化的数据点。B 列和 C 列是布尔值,其余列是正负十进制数的组合。我想从所有列中找到一些关系和见解,以便我可以最大化 A 列的总和。
在R您可以运行线性回归。考虑这个“学术”最小的例子:
df = data.frame(c(3,5,2,7,5,3), c(1,0,1,0,1,0), c(0,1,1,0,1,0))
colnames(df) = c("A", "B", "C")
df
以这个数据为例:
A B C
1 3 1 0
2 5 0 1
3 2 1 1
4 7 0 0
5 5 1 1
6 3 0 0
现在我们可以看到如何以最好B的方式C描述A。
reg = lm(A~B+C, data=df)
summary(reg)
输出:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.917 1.322 3.719 0.0338 *
factor(B)1 -1.750 1.774 -0.987 0.3966
factor(C)1 0.250 1.774 0.141 0.8968
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.048 on 3 degrees of freedom
Multiple R-squared: 0.2525, Adjusted R-squared: -0.2459
F-statistic: 0.5066 on 2 and 3 DF, p-value: 0.6463
这告诉我们何时B,C是0,A=4.1917如果B=1我们会拥有A=4.917-1.750并且如果 C=1 我们会拥有A=4.917+0.25。
所以,我们也可以做出预测:
predict(reg, newdata=df)
在这种情况下是这样的:
1 2 3 4 5 6
3.166667 5.166667 3.416667 4.916667 3.416667 4.916667
这是 ML(线性回归)的一种简单形式,其中残差平方和被最小化,以便找到截距的系数以及B最C能描述的系数A。
你可以这样写这个模型:,其中是统计误差项。(残差平方和)来解决此模型。
在矩阵代数中,你可以写,你可以通过来解决这个问题。
因此,我们不“最大化”而是最小化统计误差 ,以便在给定 column的情况下找到最适合列的“拟合” 。BCA
看看伟大的书“统计学习简介”来整理主要概念。