这个R代码抛出警告
# Fit regression model to each cluster
y <- list()
length(y) <- k
vars <- list()
length(vars) <- k
f <- list()
length(f) <- k
for (i in 1:k) {
vars[[i]] <- names(corc[[i]][corc[[i]]!= "1"])
f[[i]] <- as.formula(paste("Death ~", paste(vars[[i]], collapse= "+")))
y[[i]] <- lm(f[[i]], data=C1[[i]]) #training set
C1[[i]] <- cbind(C1[[i]], fitted(y[[i]]))
C2[[i]] <- cbind(C2[[i]], predict(y[[i]], C2[[i]])) #test set
}
Run Code Online (Sandbox Code Playgroud)
我有一个训练数据集(C1)和一个测试数据集(C2).每个都有129个变量.我做了k意味着对C1进行聚类分析,然后基于聚类成员分割我的数据集,并创建了不同聚类的列表(C1 [[1]],C1 [[2]],...,C1 [[k] ]).我还为C2中的每个案例分配了一个集群成员资格,并创建了C2 [[1]],...,C2 [[k]].然后我对C1中的每个簇进行线性回归.我的因变量是"死亡".我的预测变量在每个群集中都不同,变量[[i]](i = 1,...,k)显示了预测变量名称列表.我想为测试数据集中的每个案例预测死亡(C2 [[1]],...,C2 [[k]).当我运行以下代码时,对于某些集群.
我收到了这个警告:
In predict.lm(y[[i]], C2[[i]]) :
prediction from a rank-deficient …Run Code Online (Sandbox Code Playgroud) 我想在网络浏览器中使用Javascript进行最小二乘拟合.
目前,用户使用HTML文本输入输入数据点信息,然后我使用jQuery获取数据并使用Flot绘制图形.
在用户输入他们的数据点后,我想向他们展示一条"最合适的线".我想我会计算线性,多项式,指数和对数方程,然后选择具有最高R^2值的方程.
我似乎无法找到任何可以帮助我做到这一点的库.我偶然发现了jStat,但它完全缺少文档(据我所知)并且在挖掘源代码之后它似乎没有内置任何线性回归功能 - 我纯粹基于函数然而,名字.
有谁知道任何提供简单回归分析的Javascript库?
希望是我可以像这样使用图书馆......
如果我在数组中有一些散点var points = [[3,4],[15,45],...[23,78]],我可以将它交给某个函数lin_reg(points),它会返回类似于[7.12,3]线性方程的东西y = 7.12 x + 3.
我使用线性回归来预测数据.但是,当我标准化(Vs)标准化变量时,我得到完全对比的结果.
标准化= x -xmin/xmax - xmin零分标准化= x - xmean/xstd
a) Also, when to Normalize (Vs) Standardize ?
b) How Normalization affects Linear Regression?
c) Is it okay if I don't normalize all the attributes/lables in the linear regression?
Run Code Online (Sandbox Code Playgroud)
谢谢,桑托什
简短版本:我在某些数据上使用了scikit LinearRegression,但我习惯于p值,因此将数据放入statsmodels OLS中,尽管R ^ 2大致相同,但变量系数都大量不同.这让我很担心,因为最可能的问题是我在某个地方犯了错误,现在我对这两个输出都没有信心(因为我可能错误地制作了一个模型,但不知道哪个模型).
更长的版本:因为我不知道问题出在哪里,我不确切地知道要包括哪些细节,包括一切可能都太多了.我也不确定包含代码或数据.
我的印象是scikit的LR和statsmodels OLS都应该做OLS,据我所知OLS是OLS所以结果应该是相同的.
对于scikit的LR,结果是(统计上)相同,无论我是否设置normalize = True或= False,我觉得有点奇怪.
对于statsmodels OLS,我使用来自sklearn的StandardScaler来规范化数据.我添加了一列,所以它包含一个拦截(因为scikit的输出包括一个拦截).更多相关内容:http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html(添加此列并未将变量系数更改为任何显着程度,并且截距非常接近于零.)StandardScaler没有不喜欢我的整数不是浮点数,所以我尝试了这个:https://github.com/scikit-learn/scikit-learn/issues/1709 这使警告消失但结果完全相同.
当然,我使用5倍cv进行sklearn方法(每次R ^ 2对于测试和训练数据都是一致的),对于statsmodels我只是把它全部丢弃.
sklearn和statsmodels的R ^ 2约为0.41(这对社会科学有益).这可能是一个好兆头或只是巧合.
数据是对WoW中的化身的观察(来自http://mmnet.iis.sinica.edu.tw/dl/wowah/),我每周都会用一些不同的功能来制作它.最初这是一个数据科学课的课程项目.
独立变量包括一周中观察的数量(int),角色等级(int),如果在公会中(布尔),当看到时(工作日的布尔,平日前夕,工作日晚,周末相同的三个),对于字符类的虚拟(在数据收集时,在WoW中只有8个类,因此有7个虚拟变量并且原始字符串分类变量被删除),以及其他类.
因变量是每个字符在该周(int)中获得的级别数.
有趣的是,类似变量中的一些相对顺序在statsmodels和sklearn之间保持不变.因此,尽管负载非常不同,但"看到"的等级顺序是相同的,并且角色类假人的等级顺序是相同的,尽管负载是非常不同的.
我认为这个问题类似于这个问题:Python statsmodels OLS和R's lm的区别
我在Python和统计数据方面做得很好,但是还不够好,可以想出这样的东西.我试着阅读sklearn docs和statsmodels docs,但是如果答案就在那里,我不理解它.
我会很高兴知道:
我知道这个问题有一些相当模糊的部分(没有代码,没有数据,没有输出),但我认为它更多的是关于两个包的一般过程.当然,一个似乎更多的统计数据,似乎更多的机器学习,但他们都是OLS所以我不明白为什么输出不一样.
(我甚至尝试了一些其他的OLS调用三角测量,一个给了一个低得多的R ^ 2,一个循环了五分钟而我杀了它,一个崩溃了.)
谢谢!
#training the model
model_1_features = ['sqft_living', 'bathrooms', 'bedrooms', 'lat', 'long']
model_2_features = model_1_features + ['bed_bath_rooms']
model_3_features = model_2_features + ['bedrooms_squared', 'log_sqft_living', 'lat_plus_long']
model_1 = linear_model.LinearRegression()
model_1.fit(train_data[model_1_features], train_data['price'])
model_2 = linear_model.LinearRegression()
model_2.fit(train_data[model_2_features], train_data['price'])
model_3 = linear_model.LinearRegression()
model_3.fit(train_data[model_3_features], train_data['price'])
# extracting the coef
print model_1.coef_
print model_2.coef_
print model_3.coef_
Run Code Online (Sandbox Code Playgroud)
如果我改变了特征的顺序,则coef仍以相同的顺序打印,因此我想知道该特征与coeff的映射
我正在尝试实现此算法以查找单个变量的截距和斜率:
这是我更新拦截和斜率的Python代码.但它并没有趋同.RSS随着迭代而不是减少而增加,并且在一些迭代之后它变得无限.我没有发现任何实现算法的错误.我怎么能解决这个问题?我也附上了csv文件.这是代码.
import pandas as pd
import numpy as np
#Defining gradient_decend
#This Function takes X value, Y value and vector of w0(intercept),w1(slope)
#INPUT FEATURES=X(sq.feet of house size)
#TARGET VALUE=Y (Price of House)
#W=np.array([w0,w1]).reshape(2,1)
#W=[w0,
# w1]
def gradient_decend(X,Y,W):
intercept=W[0][0]
slope=W[1][0]
#Here i will get a list
#list is like this
#gd=[sum(predicted_value-(intercept+slope*x)),
# sum(predicted_value-(intercept+slope*x)*x)]
gd=[sum(y-(intercept+slope*x) for x,y in zip(X,Y)),
sum(((y-(intercept+slope*x))*x) for x,y in zip(X,Y))]
return np.array(gd).reshape(2,1)
#Defining Resudual sum of squares
def RSS(X,Y,W):
return sum((y-(W[0][0]+W[1][0]*x))**2 for x,y in zip(X,Y))
#Reading …Run Code Online (Sandbox Code Playgroud) python numpy machine-learning linear-regression gradient-descent
使用scipy.stats.linregress,我在一些高度相关的x,y实验数据集上执行简单的线性回归,并且最初在视觉上检查每个x,y散点图以获得异常值.更一般地(即以编程方式)是否有一种方法来识别和屏蔽异常值?
将lmplot在seaborn拟合回归模型的截距.但是,有时我想要在没有截距的情况下拟合回归模型,即通过原点进行回归.
例如:
In [1]: import numpy as np
...: import pandas as pd
...: import seaborn as sns
...: import matplotlib.pyplot as plt
...: import statsmodels.formula.api as sfa
...:
In [2]: %matplotlib inline
In [3]: np.random.seed(2016)
In [4]: x = np.linspace(0, 10, 32)
In [5]: y = 0.3 * x + np.random.randn(len(x))
In [6]: df = pd.DataFrame({'x': x, 'y': y})
In [7]: r = sfa.ols('y ~ x + 0', data=df).fit()
In [8]: sns.lmplot(x='x', y='y', data=df, fit_reg=True) …Run Code Online (Sandbox Code Playgroud) 当我从数据中预测一个样本时,它会给出重塑错误,但我的模型具有相同的行数。这是我的代码:
import pandas as pd
from sklearn.linear_model import LinearRegression
import numpy as np
x = np.array([2.0 , 2.4, 1.5, 3.5, 3.5, 3.5, 3.5, 3.7, 3.7])
y = np.array([196, 221, 136, 255, 244, 230, 232, 255, 267])
lr = LinearRegression()
lr.fit(x,y)
print(lr.predict(2.4))
Run Code Online (Sandbox Code Playgroud)
错误是
if it contains a single sample.".format(array))
ValueError: Expected 2D array, got scalar array instead:
array=2.4.
Reshape your data either using array.reshape(-1, 1) if your data has a
single feature or array.reshape(1, -1) if it contains a single sample.
Run Code Online (Sandbox Code Playgroud) python machine-learning linear-regression python-3.x scikit-learn
python ×6
statistics ×4
scikit-learn ×3
flot ×1
javascript ×1
jquery ×1
lm ×1
numpy ×1
python-3.x ×1
r ×1
scipy ×1
seaborn ×1
statsmodels ×1