案例:回归求解 | 学习笔记

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习案例:回归求解

开发者学堂课程【人工智能必备基础:概率论与数理统计:案例:回归求解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/545/detail/7442


案例:回归求解

一、Lasso 回归

X[ 1,1,1,1]W1[1/4,1/4,1/4,1/4],w2[1,0,0,0], w1 和 w2 相加起来都等于1. 区分:趋势不同,w1 趋势更稳定,能处理更多类型的数据。

多加了一个绝对值项来惩罚过大的系数,alphas=0 那就是最小二乘了(表示惩罚力度)

In (1078]: # logarithmic scale: log base 2
# high values to rero-out more variables

alphas=2.**k np. arange(2, 12)(选择不同的参数)
scores . np. empty_like (alphas)
for i, a in enumerate (alphas) :
lasso . Lasso (random_state = seed)(指定好模型)

lasso. set_params (alpha = a)(指定惩罚力度)
lasso. fit(X_ train, y_train)
scores[i] = lasso. score(X_ test, y. test)(结果值是由测试集进行计算的,训练集只是建立方程,测试集是利用方程进行结果的评估)(一般测试集只是用来选参数)

(交叉验证)
lassocv = LassoCV(cv = 10, random state F seed)(指定交叉验证的个数)

lassocv, fit (features, target)(将原始数据存入)
lassocv_ score = lassocv. score (features, target)(得到 score 值)

lassocv_ alpha = lassocv. alpha_(将 α 值拿出)

plt. figure(figsize = (10, 4))

plt. plot (alphas, scores,’ -ko’ )
plt. axhline (lassocv score, color = c)

plt. xlabel(r’ $\alpha$’ )

plt. ylabel(‘CV Score’)
plt. xscale (‘log’,basex=2)
sns. despine(offset=15)

print(‘CV results:’, lassocv_ score, lassocv. _alpha)

CV results: 0826897171636 225757779669

image.pnglt’s already a good result: R squared of 0.82. Let’s take a look a the features contributing to the model.
In [1115]: a lassocv coefficients
coefs = pd. Series(lassocv. coef_ . index =features. columns)(将系数都拿出)
# prints out the number of picked/eliminated/features
print( “Lasso picked”+ str( sum(coefs!=0))+”features and eliminated the other
str(sum(coefs ==0))+” features”.)
# takes first and last 10
coefs =pd.concat([coefs. sort values(). head(5),coefs.sortvalues().tail(5)])
plt. figure(figsize = (10, 4))
coefs. plot(kind =” barh”, color= c)
plt. title("Coefficients in the Lasso Model)

plt. show()
Lasso picked 13 features and eliminated the other52 features.

image.pngIn [1080]: model_11 = LassoCV(alphas = alphas, cv =10, random_state = seed).fit(X train. y_ train)
y_ pred_ 11 = mode1_ 11. predict(x test)
model_ 11. score(X_ test, y_ test)

Out[1080]: 0. 83307445226244159
We get higher score on the test than on the train set, which showsthat the model can propbably generalize well on the unseen data.
In (1113]: =# residual plot
plt. rcParams[‘ figure. Figsize’] = (6.0, 6. 0)preds = pd. DataFrame(“preds “: model_11. predict(X_ train), “true": y _train))(将当前结果导入)

preds[" residuals “] = preds[" true"] preds[preds" ]
preds. plot(x = preds , y = residuals, kind = scatter, color = c)
Out(1113]: <matplotlib. axes. _ subplots. AxesSubplot at 0x15c9f48d0>

image.png

可用 x 值表示预测值,y 值表示之间的差异。

In [1082]: def MSE(y_ true,y_ pred):
mse = mean_squared_error(y_true, y_pred)

print(‘MSE:% 92. 3f’% mse)
return mse
def R2(y_true,y_pred):
r2 = r2_score(y_true, y_pred)

print(‘ R2: %2. 3f’% r2)
return r2
MSE(y_test, y_pred _11);(表示局方误差)

 R2(y_test, y_pred 11);
MSE: 3870543. 789

R2: 0.833
In [1083]: # predictions
d= (‘ true’: list(y_ test),
‘predicted&apos’ : pd. Series(y_pred_11)

}
pd. DataFrame (d). head()

Out[1083]:

Predicted         true
0               8698.454622    8499.0
1              16848.107734     17450.0
2              11050.616354    9279.0
3             10177.257093     7975.0
4             6505.098638      6692.0

scikit-learn 的用法:

进入 Linear Models,刚才使用的是linear_model.Lasso([alpha,fit_intercept,…])(表示交叉验证)linear_model.LassoCV([eps,n_alphas,…])(直接进行建模)。比如对模块不熟悉,点击进入查看即可。可看到公式既公式是怎么算的。也会说明 α 的作用。会有例子。会说明用 scikit-learn 进行弧边模型的建立。scikit-learn 里的 API 可以帮助找到你想要的。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
机器学习/深度学习 数据挖掘
R实战|从文献入手谈谈logistic回归、Cox回归以及Lasso分析(一)
R实战|从文献入手谈谈logistic回归、Cox回归以及Lasso分析(一)
811 0
|
9月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)
【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)
124 0
|
4月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
7月前
|
算法 C#
C#实战 | 求解《九章算术》盈不足之共买物
【7月更文挑战第8天】中国古代数学成就显著,《九章算术》展示了先进的算法,如分数运算和方程解法,领先世界数百年。项目示例通过控制台应用,运用for循环和if条件语句,模拟解决书中盈不足问题,展示了解决数学问题的编程方法。
72 6
C#实战 | 求解《九章算术》盈不足之共买物
|
机器学习/深度学习 算法 BI
学习笔记: 机器学习经典算法-梯度下降法求解线性回归
机器学习经典算法-个人笔记和学习心得分享
228 0
|
机器学习/深度学习 人工智能 vr&ar
【机器学习】线性回归——岭回归从贝叶斯角度理解(理论+图解+公式推导)
【机器学习】线性回归——岭回归从贝叶斯角度理解(理论+图解+公式推导)
413 0
【机器学习】线性回归——岭回归从贝叶斯角度理解(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 资源调度
【机器学习】线性回归——最小二乘法的概率解释高斯噪声(理论+图解+公式推导)
【机器学习】线性回归——最小二乘法的概率解释高斯噪声(理论+图解+公式推导)
342 0
【机器学习】线性回归——最小二乘法的概率解释高斯噪声(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 vr&ar
【机器学习】线性回归——最小二乘法(理论+图解+公式推导)
【机器学习】线性回归——最小二乘法(理论+图解+公式推导)
1007 0
【机器学习】线性回归——最小二乘法(理论+图解+公式推导)
|
机器学习/深度学习 人工智能 算法
【机器学习】逻辑回归(Logistic Regression)(理论+图解+公式推导+代码实现)
【机器学习】逻辑回归(Logistic Regression)(理论+图解+公式推导+代码实现)
1046 0
【机器学习】逻辑回归(Logistic Regression)(理论+图解+公式推导+代码实现)
|
机器学习/深度学习 算法
《统计学习方法》极简笔记P6:逻辑回归算法推导
《统计学习方法》极简笔记P6:逻辑回归算法推导
《统计学习方法》极简笔记P6:逻辑回归算法推导