有人可以向统计上的天真解释Multiple R-squared和之间的区别Adjusted R-squared是什么?我正在进行单变量回归分析,如下所示:
v.lm <- lm(epm ~ n_days, data=v)
print(summary(v.lm))
Run Code Online (Sandbox Code Playgroud)
结果:
Call:
lm(formula = epm ~ n_days, data = v)
Residuals:
Min 1Q Median 3Q Max
-693.59 -325.79 53.34 302.46 964.95
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2550.39 92.15 27.677 <2e-16 ***
n_days -13.12 5.39 -2.433 0.0216 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 410.1 on 28 degrees of freedom
Multiple R-squared: …Run Code Online (Sandbox Code Playgroud) 当我们有一个高度线性多项式用于拟合线性回归设置中的一组点时,为了防止过度拟合,我们使用正则化,并在成本函数中包含一个lambda参数.然后,该lambda用于更新梯度下降算法中的theta参数.
我的问题是我们如何计算这个lambda正则化参数?
当我使用以下代码与X大小(952,144)的数据矩阵和y大小(952)的输出向量时,mean_squared_error度量返回负值,这是意外的.你有什么主意吗?
from sklearn.svm import SVR
from sklearn import cross_validation as CV
reg = SVR(C=1., epsilon=0.1, kernel='rbf')
scores = CV.cross_val_score(reg, X, y, cv=10, scoring='mean_squared_error')
Run Code Online (Sandbox Code Playgroud)
scores然后所有的值都是负数.
我正在使用R包randomForest来对一些生物数据进行回归.我的训练数据大小是38772 X 201.
我只是想知道---树木ntree的数量和每个级别的变量数量有什么好处mtry?是否有一个近似的公式来找到这样的参数值?
我的输入数据中的每一行都是一个代表氨基酸序列的200个字符,我想建立一个回归模型来使用这样的序列来预测蛋白质之间的距离.
回归算法似乎正在处理以数字表示的特征.例如:
此数据集不包含分类要素/变量.很清楚如何对这些数据进行回归并预测价格.
但现在我想对包含分类特征的数据进行回归分析:
有5个特点:District,Condition,Material,Security,Type
如何对这些数据进行回归?我是否必须手动将所有这些字符串/分类数据转换为数字?我的意思是,如果我必须创建一些编码规则,并根据该规则将所有数据转换为数值.有没有简单的方法将字符串数据转换为数字而无需手动创建自己的编码规则?可能有一些Python中的库可用于此吗?由于"编码错误",回归模型是否存在某些风险?
python regression machine-learning linear-regression feature-selection
我想用R中的lm()函数计算线性回归.另外我想得到一个回归的斜率,我明确地给出了截距lm().
我在互联网上找到了一个例子,我试图阅读R-help"?lm"(不幸的是我无法理解它),但我没有成功.谁能告诉我我的错误在哪里?
lin <- data.frame(x = c(0:6), y = c(0.3, 0.1, 0.9, 3.1, 5, 4.9, 6.2))
plot (lin$x, lin$y)
regImp = lm(formula = lin$x ~ lin$y)
abline(regImp, col="blue")
# Does not work:
# Use 1 as intercept
explicitIntercept = rep(1, length(lin$x))
regExp = lm(formula = lin$x ~ lin$y + explicitIntercept)
abline(regExp, col="green")
Run Code Online (Sandbox Code Playgroud)
感谢你的帮助.
我为这个愚蠢的问题道歉......但我似乎无法找到一个简单的解决方案
我想从拟合的线性模型中提取标准化系数(在R中)必须有一个简单的方法或函数来做到这一点.你能告诉我它是什么吗?
编辑(以下一些评论):我应该提供有关我的问题的更多上下文信息.我正在为一群心理学家教授一个介绍性的R工作室.对于他们来说,没有能够获得标准化系数的线性模型就好像你根本没有运行模型一样(好吧,这有点夸张,但你明白了).当我们做了一些回归时,这是他们的第一个问题,我(我的坏)我没有预料到(我不是心理学家).当然我可以自己编程,当然我可以找到适合我的软件包.但与此同时,我认为这是线性模型的一个基本和常见的必需功能,在现场,我认为应该有一个基本的功能,无需安装越来越多的包(这被认为是初学者的难点).所以我问(这也是向他们展示如何在需要时获得帮助的机会).
我为那些认为我问过一个愚蠢问题的人道歉,并且非常感谢那些花时间回答问题的人.
我正在拟合一个模型来分析数据和预测.如果newdata在predict.lm()包含单个因子水平来说是未知的模型,所有的predict.lm()失败,并返回一个错误.
是否有一种很好的方法可以predict.lm()返回模型知道的那些因子水平的预测值和未知因子水平的NA,而不仅仅是错误?
示例代码:
foo <- data.frame(response=rnorm(3),predictor=as.factor(c("A","B","C")))
model <- lm(response~predictor,foo)
foo.new <- data.frame(predictor=as.factor(c("A","B","C","D")))
predict(model,newdata=foo.new)
Run Code Online (Sandbox Code Playgroud)
我希望最后一个命令返回对应于因子级别"A","B"和"C"的三个"真实"预测,并且NA对应于未知级别"D".
这些是关于如何计算和减少机器学习过度拟合的问题.我认为许多新的机器学习会有同样的问题,所以我试着清楚我的例子和问题,希望这里的答案可以帮助别人.
我有一个非常小的文本样本,我正在尝试预测与它们相关的值.我已经使用sklearn来计算tf-idf,并将它们插入到回归模型中进行预测.这给了我26个样本,6323个功能 - 不是很多..我知道:
>> count_vectorizer = CountVectorizer(min_n=1, max_n=1)
>> term_freq = count_vectorizer.fit_transform(texts)
>> transformer = TfidfTransformer()
>> X = transformer.fit_transform(term_freq)
>> print X.shape
(26, 6323)
Run Code Online (Sandbox Code Playgroud)
将这些6323个特征(X)和相关分数(y)的26个样本插入到LinearRegression模型中,可以得到很好的预测.这些是使用留一法交叉验证获得的,来自cross_validation.LeaveOneOut(X.shape[0], indices=True):
using ngrams (n=1):
human machine points-off %error
8.67 8.27 0.40 1.98
8.00 7.33 0.67 3.34
... ... ... ...
5.00 6.61 1.61 8.06
9.00 7.50 1.50 7.50
mean: 7.59 7.64 1.29 6.47
std : 1.94 0.56 1.38 6.91
Run Code Online (Sandbox Code Playgroud)
非常好!使用ngrams(n = 300)而不是unigrams(n = 1),会出现类似的结果,这显然是不对的.在任何文本中都不会出现300个单词,因此预测应该会失败,但它不会:
using ngrams (n=300):
human machine …Run Code Online (Sandbox Code Playgroud) 我使用张量流来实现一个简单的多层感知器用于回归.代码是从标准的mnist分类器修改的,我只将输出成本更改为MSE(使用tf.reduce_mean(tf.square(pred-y))),以及一些输入,输出大小设置.但是,如果我使用回归训练网络,在几个时期之后,输出批次完全相同.例如:
target: 48.129, estimated: 42.634
target: 46.590, estimated: 42.634
target: 34.209, estimated: 42.634
target: 69.677, estimated: 42.634
......
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的批量大小,不同的初始化,使用sklearn.preprocessing.scale进行输入规范化(我的输入范围非常不同).但是,它们都没有奏效.我还尝试了Tensorflow的一个sklearn示例(波士顿数据的深度神经网络回归).但我在第40行得到了另一个错误:
'module'对象没有属性'infer_real_valued_columns_from_input'
任何人都有关于问题所在的线索?谢谢
我的代码如下所示,可能有点长,但非常简单:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import tensorflow as tf
from tensorflow.contrib import learn
import matplotlib.pyplot as plt
from sklearn.pipeline import Pipeline
from sklearn import datasets, linear_model
from sklearn import cross_validation
import numpy as np
boston = learn.datasets.load_dataset('boston')
x, y = boston.data, boston.target
X_train, X_test, Y_train, Y_test = …Run Code Online (Sandbox Code Playgroud) regression ×10
r ×5
python ×4
lm ×3
scikit-learn ×2
statistics ×2
beta ×1
data-mining ×1
numpy ×1
standardized ×1
tensorflow ×1