标签: linear-regression

sklearn,LassoCV()和ElasticCV()坏了吗?

sklearn提供用于回归估计的LASSO方法.但是,当我尝试使用ya矩阵拟合LassoCV(X,y)时,它会抛出错误.请参阅下面的屏幕截图以及其文档的链接.我使用的sklearn版本是0.15.2.

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LassoCV.html#sklearn.linear_model.LassoCV

它的文件说y可以是一个ndarray:

y : array-like, shape (n_samples,) or (n_samples, n_targets)
Run Code Online (Sandbox Code Playgroud)

当我使用Lasso()来适应相同的X和y时,它工作正常.所以我想知道LassoCV()是否已损坏或我是否需要做其他事情?

In [2]:  import numpy as np 
im
In [3]: import sklearn.linear_model

In [4]: from sklearn import linear_model

In [5]: X = np.random.random((10,100))

In [6]: y = np.random.random((50, 100)) 

In [7]: linear_model.Lasso().fit(X,y) 
Out[7]: 
Lasso(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=1000,
   normalize=False, positive=False, precompute='auto', tol=0.0001,
   warm_start=False)

In [8]: linear_model.LassoCV().fit(X,y)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-8-9c8ad3459ac8> in <module>()
----> 1 linear_model.LassoCV().fit(X,y)

/chimerahomes/wenhoujx/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/sklearn/linear_model/coordinate_descent.pyc in fit(self, X, y)
   1006             if y.ndim > 1:
   1007 …
Run Code Online (Sandbox Code Playgroud)

python regression linear-regression scikit-learn

6
推荐指数
1
解决办法
1102
查看次数

使用MCMCglmm的R中的贝叶斯误差变量(总最小二乘)模型

我正在使用MCMCglmm包中的一些贝叶斯线性混合模型R.我的数据包括使用错误测量的预测变量.因此,我想建立一个考虑到这一点的模型.我的理解是,基本的混合效应模型MCMCglmm将仅对响应变量(如ols回归)中的误差最小化.换句话说,垂直误差将被最小化.我想最小化与回归线/平面/超平面正交的误差.

  1. 是否可以使用MCMCglmm或者我必须使用JAGS/STAN来进行变量误差(也就是总最小二乘)模型?
  2. 是否可以在同一模型中使用多个预测变量来实现这一点(我有一些模型有3个或4个预测变量,每个模型都有误差测量)?
  3. 如果可能,我该如何指定模型?

我在下面列出了一个数据集,其中一个随机变量height用错误来衡量,以说明基本设置MCMCglmm.

library(nlme)
library(MCMCglmm)

data(Orthodont)

set.seed(1234)

Orthodont$height <- c(rnorm(54, 170, 10), rnorm(54, 150, 10))

prior1 <- list(
    B = list(mu = rep(0, 3), V = diag(1e+08, 3)), 
    G = list(G1 = list(V = 1, nu = 1, alpha.mu = 0, alpha.V = 1000)), 
    R = list(V = 1, nu = 0.002)
)

model1 <- MCMCglmm(
    fixed = distance ~ height + Sex,   
    random …
Run Code Online (Sandbox Code Playgroud)

r bayesian linear-regression mcmc mixed-models

6
推荐指数
0
解决办法
432
查看次数

线性回归和非线性回归之间的区别?

在机器学习中,我们说:

  • w 1 x 1 + w 2 x 2 + ... + w n x n线性回归模型,其中w 1,w 2 .... w n是权重,x 1,x 2 ... x 2是功能而:
  • w 1 x 1 2 + w 2 x 2 2 + ... + w n x n 2非线性(多项式)回归模型

然而,在一些讲座我看到有人说一个模型是线性基础上的权重,即权重系数是线性和特征的程度并不重要,无论是直线(X 1)或多项式Λ(x 1 2).真的吗?如何区分线性和非线性模型?它是基于权重还是特征值?

regression machine-learning linear-regression non-linear-regression

6
推荐指数
1
解决办法
3038
查看次数

具有lm的线性模型:如何获取预测值总和的预测方差

我正在对具有多个预测变量的线性模型的预测值求和,如下面的示例所示,并希望计算该总和的组合方差,标准误差和可能的置信区间。

lm.tree <- lm(Volume ~ poly(Girth,2), data = trees)
Run Code Online (Sandbox Code Playgroud)

假设我有一组Girths

newdat <- list(Girth = c(10,12,14,16)
Run Code Online (Sandbox Code Playgroud)

为此,我想预测总数Volume

pr <- predict(lm.tree, newdat, se.fit = TRUE)
total <- sum(pr$fit)
# [1] 111.512
Run Code Online (Sandbox Code Playgroud)

如何获得方差total

这里有类似的问题(针对GAM),但我不确定如何继续进行vcov(lm.trees)。我希望为该方法提供参考。

regression r linear-regression predict lm

6
推荐指数
1
解决办法
2302
查看次数

如何在R中使用公式来排除主效应但保留相互作用

我不想要主效应,因为它与更精细的因子固定效果共线,所以有这些是烦人的NA.

在这个例子中:

lm(y ~ x * z)
Run Code Online (Sandbox Code Playgroud)

我想要x(数字)和z(因素)的相互作用,但不是主要的效果z.

regression r linear-regression lm categorical-data

6
推荐指数
1
解决办法
4838
查看次数

如何在线性回归中手动计算t统计量的p值

我对178尾自由度的双尾t检验进行了线性回归.该summary函数为我的两个t值提供了两个p值.

t value Pr(>|t|)
5.06    1.04e-06 ***
10.09    < 2e-16 ***
...
...
F-statistic: 101.8 on 1 and 178 DF, p-value: < 2.2e-16
Run Code Online (Sandbox Code Playgroud)

我想用这个公式手动计算t值的p值:

p = 1 - 2*F(|t|)

p_value_1 <- 1 - 2 * pt(abs(t_1), 178)
p_value_2 <- 1 - 2 * pt(abs(t_2), 178)
Run Code Online (Sandbox Code Playgroud)

我没有获得与模型摘要中相同的p值.因此,我想知道summary函数Pr(>|t|)与我的公式有何不同,因为我找不到定义Pr(>|t|).

你能帮助我吗?非常感谢!

statistics regression r linear-regression p-value

6
推荐指数
1
解决办法
4557
查看次数

具有张量流的线性回归

我试图理解线性回归......这是我试图理解的脚本:

'''
A linear regression learning algorithm example using TensorFlow library.
Author: Aymeric Damien
Project: https://github.com/aymericdamien/TensorFlow-Examples/
'''

from __future__ import print_function

import tensorflow as tf
from numpy import *
import numpy
import matplotlib.pyplot as plt
rng = numpy.random

# Parameters
learning_rate = 0.0001
training_epochs = 1000
display_step = 50

# Training Data
train_X = numpy.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,
                         7.042,10.791,5.313,7.997,5.654,9.27,3.1])
train_Y = numpy.asarray([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.221,
                         2.827,3.465,1.65,2.904,2.42,2.94,1.3])

train_X=numpy.asarray(train_X)
train_Y=numpy.asarray(train_Y)
n_samples = train_X.shape[0]


# tf Graph Input
X = tf.placeholder("float")
Y = tf.placeholder("float")

# Set model weights
W …
Run Code Online (Sandbox Code Playgroud)

python prediction linear-regression tensorflow

6
推荐指数
1
解决办法
5265
查看次数

如何使用最新版本的Pandas进行OLS回归

我想OLS regression estimation在以下URL中运行数据集的滚动1000窗口以进行评估:

https://drive.google.com/open?id=0B2Iv8dfU4fTUa3dPYW5tejA0bzg

我尝试使用以下Python脚本与pandas版本0.20.2.

# /usr/bin/python -tt

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from statsmodels.formula.api import ols

df = pd.read_csv('estimated.csv', names=('x','y'))

model = pd.stats.ols.MovingOLS(y=df.Y, x=df[['y']], 
                               window_type='rolling', window=1000, intercept=True)
df['Y_hat'] = model.y_predict
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的Python脚本时,我收到此错误:AttributeError: module 'pandas.stats' has no attribute 'ols'.我发现这个错误的原因是因为它从Pandas版本中删除了,因为0.20.0我们可以从以下链接看到它.

https://github.com/pandas-dev/pandas/pull/11898

我们如何OLS Regression处理最新版本的熊猫?

python numpy linear-regression python-3.x pandas

6
推荐指数
1
解决办法
3748
查看次数

梯度下降插补python-等高线

作为一项自学练习,我尝试对从头开始的线性回归问题实施梯度下降,并在等高线上绘制结果迭代。

我的梯度下降实现给出了正确的结果(使用Sklearn测试),但是梯度下降图似乎并不垂直于轮廓线。这是预期的还是我的代码/理解中出现问题?

算法

在此处输入图片说明

成本函数和梯度下降

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def costfunction(X,y,theta):
    m = np.size(y)

    #Cost function in vectorized form
    h = X @ theta
    J = float((1./(2*m)) * (h - y).T @ (h - y));    
    return J;


def gradient_descent(X,y,theta,alpha = 0.0005,num_iters=1000):
    #Initialisation of useful values 
    m = np.size(y)
    J_history = np.zeros(num_iters)
    theta_0_hist, theta_1_hist = [], [] #For plotting afterwards

    for i in range(num_iters):
        #Grad function …
Run Code Online (Sandbox Code Playgroud)

python optimization machine-learning linear-regression gradient-descent

6
推荐指数
1
解决办法
1375
查看次数

如何在Python回归中添加“大于0且总和为1”的约束?

我正在使用statsmodels(向其他python选项开放)运行一些线性回归。我的问题是我需要回归分析不具有截距并将其约束在(0,1)范围内,并且总和为1。

我尝试过这样的事情(至少为1):

from statsmodels.formula.api import glm
import pandas as pd

df = pd.DataFrame({'revised_guess':[0.6], "self":[0.55], "alter_1":[0.45], "alter_2":[0.2],"alter_3":[0.8]})
mod = glm("revised_guess ~ self + alter_1 + alter_2 + alter_3 - 1", data=df)
res = mod.fit_constrained(["self + alter_1 + alter_2 + alter_3  = 1"],
                          start_params=[0.25,0.25,0.25,0.25])
res.summary()
Run Code Online (Sandbox Code Playgroud)

但仍在努力实施“非负”系数约束。

python linear-regression statsmodels

6
推荐指数
1
解决办法
563
查看次数