2018/12/5 新知识

1.线性回归

(1)参考:https://www.cnblogs.com/hhh5460/p/5786115.html

使用linear_model.LinearRegression(fit_intercept=Truenormalize=Falsecopy_X=Truen_jobs=None)

方法:

fit(X, y[, sample_weight])拟合线性模型。

get_params([deep])//获取此估计器的参数。

predict(X)/线性模型预测

score(X, y[, sample_weight])///返回预测的系数

set_params(**params)///设置这个估计器的参数

二维:(x,y)

# 建立线性回归模型 regr = linear_model.LinearRegression()

# 拟合 regr.fit(df['square_feet'].reshape(-1, 1), df['price']) # 注意此处.reshape(-1, 1),因为X是一维的!

# 不难得到直线的斜率、截距 a, b = regr.coef_, regr.intercept_

# 给出待预测面积 area = 238.5

# 方式1:根据直线方程计算的价格 print(a * area + b)

# 方式2:根据predict方法预测的价格 print(regr.predict(area))

三维:(x,y,z)

 

# 建立线性回归模型 regr = linear_model.LinearRegression()

# 拟合 regr.fit(X, Z)

# 不难得到平面的系数、截距 a, b = regr.coef_, regr.intercept_

# 给出待预测的一个特征 x = np.array([[5.8, 78.3]])

# 方式1:根据线性方程计算待预测的特征x对应的值z(注意:np.sum) print(np.sum(a * x) + b)

# 方式2:根据predict方法预测的值z print(regr.predict(x))

(2)参考:http://www.dataguru.cn/thread-183366-1-1.html

使用stats.linregress()

因为它仅被用来优化计算两组测量数据的最小二乘回归,所以其灵活性相当受限。因此,不能使用它进行广义线性模型和多元回归拟合。但是,由于其特殊性,它是简单线性回归中最快速的方法之一。除了拟合的系数和截距项之外,它还返回基本统计量,如R2系数和标准差。

from scipy import stats

slope, intercept, r_value, p_value, slope_std_error = stats.linregress(x, y)

predict_y = intercept + slope * x

pred_error = y - predict_y

degrees_of_freedom = len(x) - 2

residual_std_error = np.sqrt(np.sum(pred_error**2) / degrees_of_freedom)

(3)参考:https://blog.csdn.net/kancy110/article/details/73864804

使用numpy.linalg.lstsq(a, b, rcond=-1)

通过矩阵分解计算线性方程组的最小二乘解的基本方法。来自numpy包的简便线性代数模块。在该方法中,通过计算欧几里德2-范数||b-ax||2最小化的向量x来求解等式ax = b。该方程可能有无数解、唯一解或无解。如果a是方阵且满秩,则x(四舍五入)是方程的“精确”解。可以使用这个方法做一元或多元线性回归来得到计算的系数和残差。一个小诀窍是,在调用函数之前必须在x数据后加一列1来计算截距项。这被证明是更快速地解决线性回归问题的方法之一。

from numpy.linalg import lstsq

 

np.linalg.lstsq(X1, y1)

 

返回元组,元组中四个元素,第一元素表示所求的最小二乘解,第二个元素表示残差总和,第三个元素表示X1矩阵秩,第四个元素表示X1的奇异值。

2.X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size, random_state)

X_train,y_train:得到的训练数据。
X_test, y_test:得到的测试数据。
X,Y:原始数据
random_state:
Pseudo-random number generator state used for random sampling用于随机抽样的伪随机数发生器状态

test_size:

将原始数据打乱得到新顺序的训练数据和测试数据,测试数据的规格为原始数据的test_size(百分之几)

3.参考:https://blog.csdn.net/grape875499765/article/details/78631435

R^2系数

那么R^2就越接近0,所以估计的越准确就越接近1。

4.参考:http://www.lizenghai.com/archives/524.html

逐步回归(stepwise regression)

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值