我正在编写一个脚本,该脚本将预测给定未来日期的服务器上已用磁盘空间的百分比。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) 我目前正在尝试运行一个循环,对多个自变量 (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
有没有人有更优雅的方式来运行这个 …
你能告诉我如何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
我正在尝试使用 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) 在R中运行多元回归后,回归摘要会显示带有星号的重要变量.在我正在研究的数据集中,有近2000个变量,R确定的重要变量包含50多个变量.有没有什么方法可以从回归总结中单独获得重要变量列表.
所以我有这个看起来像这样的情节:

x轴和y轴都是log,我如何拟合最小二乘回归线?这是我用来绘制图形的图:plot(log(counts),log ="x",type ="p")
count包含每个x的观察数...
我在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) 我有两个一维数组,我想做一些线性回归.我用了:
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.
我该如何解决这个问题?
我正在尝试在进行回归分析时完全理解分类和有序数据之间的差异.目前,很明显:
分类特征和数据示例:
颜色:红色,白色,黑色
为什么分类: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
该问题涉及机器学习特征选择过程.
我有一个很大的特征矩阵 - 列是主题(行)的特征:
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)