标签: linear-regression

准确度分数ValueError:无法处理二进制和连续目标的混合

我使用linear_model.LinearRegressionscikit-learn作为预测模型.它的工作原理很完美.我有一个问题是使用accuracy_score指标评估预测结果.这是我的真实数据:

array([1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0])
Run Code Online (Sandbox Code Playgroud)

我的预测数据:

array([ 0.07094605,  0.1994941 ,  0.19270157,  0.13379635,  0.04654469,
    0.09212494,  0.19952108,  0.12884365,  0.15685076, -0.01274453,
    0.32167554,  0.32167554, -0.10023553,  0.09819648, -0.06755516,
    0.25390082,  0.17248324])
Run Code Online (Sandbox Code Playgroud)

我的代码:

accuracy_score(y_true, y_pred, normalize=False)
Run Code Online (Sandbox Code Playgroud)

错误信息:

ValueError:无法处理二进制和连续目标的混合

救命 ?谢谢.

python machine-learning prediction linear-regression scikit-learn

48
推荐指数
6
解决办法
7万
查看次数

成本函数,线性回归,试图避免硬编码theta.八度.

我正在通过Coursera参加Andrew Ng教授的机器学习课程的第二周.我们正在进行线性回归,现在我正在处理成本函数的编码.

我编写的代码正确地解决了问题,但是没有通过提交过程并且单元测试失败,因为我已经对theta的值进行了硬编码,并且不允许超过两个theta值.

这是我到目前为止的代码

function J = computeCost(X, y, theta)

m = length(y);
J = 0;

for i = 1:m,
    h = theta(1) + theta(2) * X(i)
    a = h - y(i);
    b = a^2;
    J = J + b;
    end;
J = J * (1 / (2 * m));

end
Run Code Online (Sandbox Code Playgroud)

单元测试是

computeCost( [1 2 3; 1 3 4; 1 4 5; 1 5 6], [7;6;5;4], [0.1;0.2;0.3])
Run Code Online (Sandbox Code Playgroud)

并应生成ans = 7.0175

所以我需要添加另一个for循环来迭代theta,因此允许theta的任意数量的值,但如果我可以围绕如何/在哪里,我会被诅咒.

任何人都可以建议一种方法,我可以在这个函数中允许任意数量的theta值吗?

如果您需要更多信息来了解我想要提出的问题,我会尽力提供.

machine-learning octave linear-regression

47
推荐指数
3
解决办法
5万
查看次数

如何计算R中线性回归模型中斜率的95%置信区间

以下是R的入门统计练习:

使用rmr数据集,绘制代谢率与体重的关系.将线性回归模型拟合到关系中.根据拟合模型,体重70公斤的预测代谢率是多少?给出该线斜率的95%置信区间.

rmr数据集位于"ISwR"包中.它看起来像这样:

> rmr
   body.weight metabolic.rate
1         49.9           1079
2         50.8           1146
3         51.8           1115
4         52.6           1161
5         57.6           1325
6         61.4           1351
7         62.3           1402
8         64.9           1365
9         43.1            870
10        48.1           1372
11        52.2           1132
12        53.5           1172
13        55.0           1034
14        55.0           1155
15        56.0           1392
16        57.8           1090
17        59.0            982
18        59.0           1178
19        59.2           1342
20        59.5           1027
21        60.0           1316
22        62.1           1574
23        64.9           1526
24        66.0           1268
25 …
Run Code Online (Sandbox Code Playgroud)

statistics r linear-regression confidence-interval

43
推荐指数
1
解决办法
15万
查看次数

TensorFlow:在变量初始化中"尝试使用未初始化的值"

我试图使用TensorFlow在Python中实现多元线性回归,但遇到了一些逻辑和实现问题.我的代码抛出以下错误:

Attempting to use uninitialized value Variable
Caused by op u'Variable/read'
Run Code Online (Sandbox Code Playgroud)

理想情况下,weights输出应该是[2, 3]

def hypothesis_function(input_2d_matrix_trainingexamples,
                        output_matrix_of_trainingexamples,
                        initial_parameters_of_hypothesis_function,
                        learning_rate, num_steps):
    # calculate num attributes and num examples
    number_of_attributes = len(input_2d_matrix_trainingexamples[0])
    number_of_trainingexamples = len(input_2d_matrix_trainingexamples)

    #Graph inputs
    x = []
    for i in range(0, number_of_attributes, 1):
        x.append(tf.placeholder("float"))
    y_input = tf.placeholder("float")

    # Create Model and Set Model weights
    parameters = []
    for i in range(0, number_of_attributes, 1):
        parameters.append(
            tf.Variable(initial_parameters_of_hypothesis_function[i]))

    #Contruct linear model
    y = tf.Variable(parameters[0], "float")
    for i in range(1, number_of_attributes, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning linear-regression tensorflow

43
推荐指数
4
解决办法
9万
查看次数

你如何(和为什么)使用对比?

在什么情况下,您在分析中创建对比?它是如何完成的以及它用于什么?

我检查?contrasts?C-都会导致,这是不容易得到的我"中的统计模型的第2章".

r linear-regression contrast categorical-data

37
推荐指数
2
解决办法
3万
查看次数

使用字符串/分类特征(变量)进行线性回归分析?

回归算法似乎正在处理以数字表示的特征.例如:

在此输入图像描述

此数据集不包含分类要素/变量.很清楚如何对这些数据进行回归并预测价格.


但现在我想对包含分类特征的数据进行回归分析:

在此输入图像描述

5个特点:District,Condition,Material,Security,Type


如何对这些数据进行回归?我是否必须手动将所有这些字符串/分类数据转换为数字?我的意思是,如果我必须创建一些编码规则,并根据该规则将所有数据转换为数值.有没有简单的方法将字符串数据转换为数字而无需手动创建自己的编码规则?可能有一些Python中的库可用于此吗?由于"编码错误",回归模型是否存在某些风险?

python regression machine-learning linear-regression feature-selection

36
推荐指数
4
解决办法
4万
查看次数

线性回归在R中具有已知的固定截距

我想用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)

感谢你的帮助.

regression r linear-regression lm

35
推荐指数
2
解决办法
5万
查看次数

predict.lm()在测试数据中具有未知因子级别

我正在拟合一个模型来分析数据和预测.如果newdatapredict.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".

regression r linear-regression lm

33
推荐指数
3
解决办法
3万
查看次数

为什么我只从statsmodels OLS中获得一个参数

这是我在做的事情:

$ python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
>>> import statsmodels.api as sm
>>> statsmodels.__version__
'0.5.0'
>>> import numpy 
>>> y = numpy.array([1,2,3,4,5,6,7,8,9])
>>> X = numpy.array([1,1,2,2,3,3,4,4,5])
>>> res_ols = sm.OLS(y, X).fit()
>>> res_ols.params
array([ 1.82352941])
Run Code Online (Sandbox Code Playgroud)

我原本以为有两个元素的数组?!?截距和斜率系数?

python linear-regression pandas statsmodels

31
推荐指数
2
解决办法
3万
查看次数

熊猫滚动回归:循环的替代方案

我得到了很好的利用了大熊猫的MovingOLS类(来源这里不推荐使用内)stats/ols模块.不幸的是,完全被大熊猫0.20摧毁了.

关于如何以有效的方式运行滚动OLS回归的问题已被多次询问(例如,这里),但在我看来,有点广泛地表达并没有得到很好的答案.

这是我的问题:

  1. 我怎样才能最好地模仿大熊猫的基本框架MovingOLS?这个类最吸引人的特点是能够将多个方法/属性视为单独的时间序列 - 即系数,r平方,t-统计等,而无需重新运行回归.例如,您可以创建类似model = pd.MovingOLS(y, x),然后调用.t_stat,.rmse,.std_err,等.在下面的示例中,相反,我没有看到被迫分别计算每个统计信息的方法.有没有一种方法不涉及创建滑动/滚动"块"(步幅)和运行回归/使用线性代数来获取每个模型参数?

  2. 更广泛地说,大熊猫在幕后发生了什么使得rolling.apply无法采用更复杂的功能?*当你.rolling用外行的术语创建一个对象时,内部发生了什么 - 它与循环每个窗口和创建一个根本不同我正在做下面的高维数组?

*即func传递给.apply:

必须从ndarray输入生成单个值*args和**kwargs传递给函数

以下是我目前处理的一些样本数据,回归贸易加权美元对利率差价和铜价的百分比变化.(这没有多大意义;只是随机选择它们.)我已经从基于类的实现中取出它并尝试将其剥离为更简单的脚本.

from datetime import date
from pandas_datareader.data import DataReader
import statsmodels.formula.api as smf

syms = {'TWEXBMTH' : 'usd', 
        'T10Y2YM' : 'term_spread', 
        'PCOPPUSDM' : 'copper'
       }

start = date(2000, 1, 1)
data = (DataReader(syms.keys(), 'fred', start)
        .pct_change()
        .dropna())
data = data.rename(columns …
Run Code Online (Sandbox Code Playgroud)

python numpy linear-regression pandas statsmodels

31
推荐指数
2
解决办法
7689
查看次数