标签: linear-regression

Python scikit-learn:为什么我的 LinearRegression 分类器的分数这么低?

我正在编写一个脚本,该脚本将预测给定未来日期的服务器上已用磁盘空间的百分比。Use% 每天从此命令中获取 1 次,如下所示:

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              30G   24G  4.4G  85% /
Run Code Online (Sandbox Code Playgroud)

并与日期一起记录。该脚本是用 Python 编写的,缺点是当我使用 LinearRegression 作为分类器时,我得到的分数非常低。代码如下:

import pandas as pd
import numpy as np
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression

# list of tuples whose format is (day_of_month, percent_used)
results =  [(1, 83), (2, 87), (3, 87), (4, 87), (5, 89), (6, 88), (7, 83), (8, 75), (9, 73), (10, 73), (11, 74), (12, 77), (13, 77), …
Run Code Online (Sandbox Code Playgroud)

python machine-learning linear-regression scikit-learn

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

如何使用不同的自变量和因变量在 R 中添加标准化系数来运行多重线性回归?

我目前正在尝试运行一个循环,对多个自变量 (n = 6) 和多个因变量 (n=1000) 执行线性回归。

这是一些示例数据,年龄、性别和教育程度代表我感兴趣的自变量,testscore_* 是我的因变量。

df = data.frame(ID = c(1001, 1002, 1003, 1004, 1005, 1006,1007, 1008, 1009,   1010, 1011),
                    age = as.numeric(c('56', '43','59','74','61','62','69','80','40','55','58')),
                    sex = as.numeric(c('0','1','0','0','1','1','0','1','0','1','0')),
                    testscore_1 = as.numeric(c('23','28','30','15','7','18','29','27','14','22','24')),
                    testscore_2 = as.numeric(c('1','3','2','5','8','2','5','6','7','8','2')),
                    testscore_3 = as.numeric(c('18','20','19','15','20','23','19','25','10','14','12')),
                    education =  as.numeric(c('5','4','3','5','2', '1','4','4','3','5','2')))

Run Code Online (Sandbox Code Playgroud)

我有工作代码,允许我为多个 DV 运行回归模型(我确信更有经验的 R 用户会因为缺乏效率而不喜欢它):

y <- as.matrix(df[4:6])
#model for age
lm_results <- lm(y ~ age, data = df)

write.csv((broom::tidy(lm_results)), "lm_results_age.csv")

regression_results <-broom::tidy(lm_results)
standardized_coefficients <- lm.beta(lm_results)
age_standardize_results <- coef(standardized_coefficients)

write.csv(age_standardize_results, "lm_results_age_standardized_coefficients.csv")
Run Code Online (Sandbox Code Playgroud)

age然后我会通过手动替换为sexand来重复这一切 education

有没有人有更优雅的方式来运行这个 …

loops r linear-regression lapply purrr

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

如何在 Pyspark 中导入 Elastic-Net、Lasso 和 Ridge 回归?

你能告诉我如何Elastic-Net在 Pyspark 中使用 、 Lasso 和 Ridge 回归吗?实际上我根据机器学习备忘单选择了Linear、Elastic-Net、Lasso和Ridge回归这4种算法。但是,我不知道如何在 Pyspark 中导入 Elastic-Net、Lasso 和 Ridge 回归,也无法通过 google 搜索到正确的答案。我只知道在Pyspark.

machine-learning lasso-regression linear-regression pyspark apache-spark-ml

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

`RuntimeError: 张量的元素 0 不需要 grad 并且没有 grad_fn` 用于使用 torch 进行梯度下降的线性回归

我正在尝试使用 pytorch 实现线性回归的简单梯度下降,如文档中的此示例所示:

import torch
from torch.autograd import Variable

learning_rate = 0.01
y = 5
x = torch.tensor([3., 0., 1.])
w = torch.tensor([2., 3., 9.], requires_grad=True)
b = torch.tensor(1., requires_grad=True)

for z in range(100):
    y_pred = b + torch.sum(w * x)
    loss = (y_pred - y).pow(2)
    loss = Variable(loss, requires_grad = True)
    # loss.requires_grad = True
    loss.backward()
    
    with torch.no_grad():
        w = w - learning_rate * w.grad
        b = b - learning_rate * b.grad
        
        w.grad = None
        b.grad = None …
Run Code Online (Sandbox Code Playgroud)

error-handling linear-regression gradient-descent pytorch

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

在R中,如何在运行具有大量变量的多元回归之后仅提取重要变量

在R中运行多元回归后,回归摘要会显示带有星号的重要变量.在我正在研究的数据集中,有近2000个变量,R确定的重要变量包含50多个变量.有没有什么方法可以从回归总结中单独获得重要变量列表.

r data-analysis linear-regression

0
推荐指数
1
解决办法
1878
查看次数

如何在R中拟合回归线?

所以我有这个看起来像这样的情节:

在此输入图像描述

x轴和y轴都是log,我如何拟合最小二乘回归线?这是我用来绘制图形的图:plot(log(counts),log ="x",type ="p")

count包含每个x的观察数...

plot r linear-regression

0
推荐指数
1
解决办法
5171
查看次数

在R中使用线性回归计算不正确的R平方

我在R中进行了一个非常简单的线性回归,但计算出的R ^ 2似乎并不正确.我做的回归如下:

data(cats)
fit = lm(Hwts ~ Bwts+0, data = cats)
summary(fit)
Run Code Online (Sandbox Code Playgroud)

我从这次回归得到的结果如下:

Call:
lm(formula = cats$Hwt ~ cats$Bwt + 0)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.4563 -0.9980 -0.1003  1.0044  5.2623 

Coefficients:
         Estimate Std. Error t value Pr(>|t|)    
cats$Bwt  3.90711    0.04364   89.53   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.449 on 143 degrees of freedom
Multiple R-squared:  0.9825,    Adjusted R-squared:  0.9823 
F-statistic:  8015 on 1 …
Run Code Online (Sandbox Code Playgroud)

r linear-regression

0
推荐指数
1
解决办法
743
查看次数

使用scipy的Y值包含NAN的线性回归

我有两个一维数组,我想做一些线性回归.我用了:

slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
Run Code Online (Sandbox Code Playgroud)

但是斜率和截距总是NAN,NAN.我读了一点,我发现如果x或y有一些NAN,那就是预期的结果.我试过这个 解决方案,但它不起作用,因为在我的情况下,只有y包含一些NAN; 不是x.所以使用该解决方案,我有错误: ValueError: all the input array dimensions except for the concatenation axis must match exactly.

我该如何解决这个问题?

python arrays numpy scipy linear-regression

0
推荐指数
1
解决办法
1363
查看次数

回归分析中的分类和序数特征数据表示?

我正在尝试在进行回归分析时完全理解分类和有序数据之间的差异.目前,很明显:

分类特征和数据示例:
颜色:红色,白色,黑色
为什么分类:red < white < black逻辑上不正确

序数特征和数据示例:
条件:旧的,翻新的,新的
为什么序数:old < renovated < new在逻辑上是正确的

分类到数字和序数到数字的编码方法:
分类数据的单热编码
顺序数据的任意数字

分类数据到数字:

data = {'color': ['blue', 'green', 'green', 'red']}
Run Code Online (Sandbox Code Playgroud)

One-Hot编码后的数字格式:

   color_blue  color_green  color_red
0           1            0          0
1           0            1          0
2           0            1          0
3           0            0          1
Run Code Online (Sandbox Code Playgroud)

序数据到数字:

data = {'con': ['old', 'new', 'new', 'renovated']}
Run Code Online (Sandbox Code Playgroud)

使用映射后的数字格式:旧<renov <new→0,1,2

0    0
1    2
2    2
3    1
Run Code Online (Sandbox Code Playgroud)

在我的数据中,我有'颜色'功能.随着颜色从白色变为黑色,价格上涨.从上面提到的规则我可能不得不使用单热编码来分类'颜色'数据.但为什么我不能使用序数表示.下面我提出了我的问题所在的观察结果.

让我首先介绍线性回归的公式: 在此输入图像描述
我们来看看颜色的数据表示: 在此输入图像描述 让我们使用两个数据表示的公式来预测第1和第2项的价格:
单热编码: 在这种情况下,将存在不同颜色的不同组.我假设这些已经来自回归(20,50和100).预测将是:

Price (1 item) = …
Run Code Online (Sandbox Code Playgroud)

regression machine-learning linear-regression categorical-data

0
推荐指数
1
解决办法
2980
查看次数

是否有简单回归的快速估计(仅具有截距和斜率的回归线)?

该问题涉及机器学习特征选择过程.

我有一个很大的特征矩阵 - 列是主题(行)的特征:

set.seed(1)
features.mat <- matrix(rnorm(10*100),ncol=100)
colnames(features.mat) <- paste("F",1:100,sep="")
rownames(features.mat) <- paste("S",1:10,sep="")
Run Code Online (Sandbox Code Playgroud)

S在不同条件(C)下测量每个受试者()的响应,因此看起来像这样:

response.df <-
data.frame(S = c(sapply(1:10, function(x) rep(paste("S", x, sep = ""),100))),
           C = rep(paste("C", 1:100, sep = ""), 10),
           response = rnorm(1000), stringsAsFactors = F)
Run Code Online (Sandbox Code Playgroud)

所以我匹配的主题是response.df:

match.idx <- match(response.df$S, rownames(features.mat))
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种快速计算每个特征和响应的单变量回归的方法.

比这更快的东西?:

fun <- function(f){
  fit <- lm(response.df$response ~ features.mat[match.idx,f])
  beta <- coef(summary(fit))
  data.frame(feature = colnames(features.mat)[f], effect = beta[2,1],
             p.val = beta[2,4], stringsAsFactors = F))
  }

res <- do.call(rbind, lapply(1:ncol(features.mat), …
Run Code Online (Sandbox Code Playgroud)

regression r linear-regression lm

0
推荐指数
1
解决办法
380
查看次数