Tag: 线性回归

使用Python和numpy的渐变下降

def gradient(X_norm,y,theta,alpha,m,n,num_it): temp=np.array(np.zeros_like(theta,float)) for i in range(0,num_it): h=np.dot(X_norm,theta) #temp[j]=theta[j]-(alpha/m)*( np.sum( (hy)*X_norm[:,j][np.newaxis,:] ) ) temp[0]=theta[0]-(alpha/m)*(np.sum(hy)) temp[1]=theta[1]-(alpha/m)*(np.sum((hy)*X_norm[:,1])) theta=temp return theta X_norm,mean,std=featureScale(X) #length of X (number of rows) m=len(X) X_norm=np.array([np.ones(m),X_norm]) n,m=np.shape(X_norm) num_it=1500 alpha=0.01 theta=np.zeros(n,float)[:,np.newaxis] X_norm=X_norm.transpose() theta=gradient(X_norm,y,theta,alpha,m,n,num_it) print theta 我的theta从上面的代码是100.2 100.2 ,但它应该是100.2 61.09在matlab中是正确的。

在ggplot上添加回归线

我努力在ggplot上添加回归线。 我第一次尝试用abline,但我没有设法使其工作。 然后我试了这个… data = data.frame(x.plot=rep(seq(1,5),10),y.plot=rnorm(50)) ggplot(data,aes(x.plot,y.plot))+stat_summary(fun.data=mean_cl_normal) + geom_smooth(method='lm',formula=data$y.plot~data$x.plot) 但是它也不起作用。

为什么梯度下降,当我们可以parsing线性回归

在线性回归空间中使用梯度下降有什么好处? 看起来像我们可以用分析方法解决问题(find最小化成本函数的theta0-n),为什么我们仍然想用梯度下降来做同样的事情呢? 谢谢

有没有更好的select比string操作以编程方式build立公式?

其他人的function似乎都采取了公式化的对象,然后在内心深处做出黑魔法,我很嫉妒。 我正在写一个适合多个模型的函数。 这些模型的部分公式保持不变,并且从一个模型到另一个模型的部分变化。 笨拙的方法是让用户input公式部分作为string,对它们进行一些字符操作,然后使用as.formula 。 但是在我走这条路线之前,我只想确保我不会忽略一些更简洁的方法,让函数接受标准R格式的公式(例如从其他使用公式的对象中提取)。 我想要像… > LHS <- y~1; RHS <- ~a+b; c(LHS,RHS); y ~ a + b > RHS2 <- ~c; > c(LHS, RHS, RHS2); y ~ a + b + c 要么… > LHS + RHS; y ~ a + b > LHS + RHS + RHS2; y ~ a + […]

用matplotlib / numpy进行线性回归

我试图在已经生成的散点图上生成一个线性回归,但是我的数据是列表格式的,所有使用polyfit的例子都需要使用arange 。 arange不接受名单。 我已经search高低如何将列表转换为数组,并没有看起来清晰。 我错过了什么吗? 接下来,如何最好地使用我的整数列表作为polyfitinput? 这里是我所遵循的polyfit例子: from pylab import * x = arange(data) y = arange(data) m,b = polyfit(x, y, 1) plot(x, y, 'yo', x, m*x+b, '–k') show()

线性回归和逻辑回归有什么区别?

当我们必须预测分类结果的价值时,我们使用逻辑回归。 我相信我们使用线性回归来预测给定input值的结果的价值。 那么,这两种方法有什么区别呢?

如何强制R在回归中使用指定的因子水平作为参考?

如果我在回归中使用二元解释variables,我怎么能告诉R使用一定的水平作为参考? 这只是默认使用一些级别。 lm(x ~ y + as.factor(b)) 与b {0, 1, 2, 3, 4} 。 假设我想用3来代替R所使用的零。

predict.lm()是如何计算置信区间和预测区间的?

我跑了一个回归: CopierDataRegression <- lm(V1~V2, data=CopierData1) 我的任务是获得一个 给定V2=6和V2=6的平均响应的90% 置信区间 当V2=6时预测间隔为 90%。 我使用了下面的代码: X6 <- data.frame(V2=6) predict(CopierDataRegression, X6, se.fit=TRUE, interval="confidence", level=0.90) predict(CopierDataRegression, X6, se.fit=TRUE, interval="prediction", level=0.90) 我得到了(87.3, 91.9)和(74.5, 104.8) ,这似乎是正确的,因为PI应该更宽。 两者的输出也包括se.fit = 1.39这是相同的。 我不明白这个标准错误是什么。 PI与CI的标准误差不应该大于? 如何在R中find这两个不同的标准错误? 数据: CopierData1 <- structure(list(V1 = c(20L, 60L, 46L, 41L, 12L, 137L, 68L, 89L, 4L, 32L, 144L, 156L, 93L, 36L, 72L, 100L, […]

如何在Python中做指数和对数曲线拟合? 我发现只有多项式拟合

我有一组数据,我想比较哪一行最好地描述它(不同阶的多项式,指数或对数)。 我使用Python和Numpy和多项式拟合有一个函数polyfit() 。 但是我没有发现这样的指数和对数拟合函数。 有没有? 或者如何解决呢?

Python中的多重线性回归

我似乎无法find任何执行多重回归的Python库。 我发现的唯一的事情只做简单的回归。 我需要将我的因variables(y)与几个独立variables(x1,x2,x3等)进行比较。 例如,用这个数据: print 'y x1 x2 x3 x4 x5 x6 x7' for t in texts: print "{:>7.1f}{:>10.2f}{:>9.2f}{:>9.2f}{:>10.2f}{:>7.2f}{:>7.2f}{:>9.2f}" / .format(ty,t.x1,t.x2,t.x3,t.x4,t.x5,t.x6,t.x7) (输出以上:) y x1 x2 x3 x4 x5 x6 x7 -6.0 -4.95 -5.87 -0.76 14.73 4.02 0.20 0.45 -5.0 -4.55 -4.52 -0.71 13.74 4.47 0.16 0.50 -10.0 -10.96 -11.64 -0.98 15.49 4.18 0.19 0.53 -5.0 […]