这是我学习时出现的scikit-learn错误
my_estimator = LassoLarsCV(fit_intercept=False, normalize=False, positive=True, max_n_alphas=1e5)
Run Code Online (Sandbox Code Playgroud)
请注意,如果我将max_n_alphas从1e5减少到1e4,我不会再出现此错误.
任何人都知道发生了什么?
我打电话时发生错误
my_estimator.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
我有尺寸的40k数据点40.
完整的堆栈跟踪看起来像这样
File "/usr/lib64/python2.7/site-packages/sklearn/linear_model/least_angle.py", line 1113, in fit
axis=0)(all_alphas)
File "/usr/lib64/python2.7/site-packages/scipy/interpolate/polyint.py", line 79, in __call__
y = self._evaluate(x)
File "/usr/lib64/python2.7/site-packages/scipy/interpolate/interpolate.py", line 498, in _evaluate
out_of_bounds = self._check_bounds(x_new)
File "/usr/lib64/python2.7/site-packages/scipy/interpolate/interpolate.py", line 525, in _check_bounds
raise ValueError("A value in x_new is below the interpolation "
ValueError: A value in x_new is below the interpolation range.
Run Code Online (Sandbox Code Playgroud) 我有一个包含1000个观测值和76个变量的数据集,其中约有20个是分类的。我想在整个数据集上使用LASSO。我知道通过lars或glmnet在LASSO中使用因子变量并不能真正起作用,但是变量太多了,它们可以采用太多不同的无序值来对它们进行合理的数字编码。
在这种情况下可以使用LASSO吗?我该怎么做呢?创建预测变量矩阵可产生以下响应:
hdy<-as.numeric(housingData2[,75])
hdx<-as.matrix(housingData2[,-75])
model.lasso <- lars(hdx, hdy)
Error in one %*% x : requires numeric/complex matrix/vector arguments
Run Code Online (Sandbox Code Playgroud)
我认识到其他方法可能更容易或更合适,但是实际的挑战是使用Lars或glmnet来做到这一点,因此,如果可能的话,我将不胜感激任何想法或反馈。
谢谢,
我试图使用lars包进行套索回归,但似乎无法使lars位工作.我输入了代码:
diabetes<-read.table("diabetes.txt", header=TRUE)
diabetes
library(lars)
diabetes.lasso = lars(diabetes$x, diabetes$y, type = "lasso")
Run Code Online (Sandbox Code Playgroud)
但是,我收到一条错误消息:rep(1,n)中的错误:无效的'times'参数.
我试过这样输入:
diabetes<-read.table("diabetes.txt", header=TRUE)
library(lars)
data(diabetes)
diabetes.lasso = lars(age+sex+bmi+map+td+ldl+hdl+tch+ltg+glu, y, type = "lasso")
Run Code Online (Sandbox Code Playgroud)
但后来我收到错误消息:'lars中的错误(年龄+性别+ bmi +地图+ td + ldl + hdl + tch + ltg + glu,y,type ="lasso"):找不到对象'age'
我哪里错了?
编辑:数据 - 如下所示,但另外5列.
ldl hdl tch ltg glu
1 -0.034820763 -0.043400846 -0.002592262 0.019908421 -0.017646125
2 -0.019163340 0.074411564 -0.039493383 -0.068329744 -0.092204050
3 -0.034194466 -0.032355932 -0.002592262 0.002863771 -0.025930339
4 0.024990593 -0.036037570 0.034308859 0.022692023 -0.009361911
5 0.015596140 0.008142084 -0.002592262 -0.031991445 -0.046640874
Run Code Online (Sandbox Code Playgroud) 我很难通过R包估算lars我的数据模型.
例如,我创建一个假数据集x和相应的值y,如下所示:
x = cbind(runif(100),rnorm(100))
colnames(x) = c("a","b")
y = 0.5 + 3 * x[,1,drop = FALSE]
Run Code Online (Sandbox Code Playgroud)
接下来,我使用lars函数训练一个使用套索正则化的模型:
m = lars(x,y,type = "lasso", normalize = FALSE, intercept = TRUE)
Run Code Online (Sandbox Code Playgroud)
现在我想知道估计的模型是什么(that I know to be: y = 0.5 + 3 * x[,1] + 0 * x[,2])
我只对最后一步获得的系数感兴趣:
cf = predict(m, x, s=1, mode = "fraction", type = "coef")$coef
cf
a b
3 0
Run Code Online (Sandbox Code Playgroud)
这些是我期望的系数,但是我找不到从中获取intercept(0.5)的方法m.
我试图检查predict.lars适合的代码,如下所示:
fit = drop(scale(newx,
object$meanx, FALSE) %*% …Run Code Online (Sandbox Code Playgroud)