《06-线性回归.pptx》由会员分享,可在线阅读,更多相关《06-线性回归.pptx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、线性回归王秋月中国人民大学信息学院=0+10.01.02.0 x1081.0BudgetBox Officex1082.0线性回归0.01.02.0 x1082.01.0BudgetBox Officebox office revenuecoefficient0=0+1moviebudgetcoefficient1x108线性回归0.01.02.01.0BudgetBox Officex108x1082.0 =0 +10=80 million,1=0.6线性回归0.01.02.01.0BudgetBox Officex108x1082.0=0 +10=80 million,1=0.6给定1.6
2、亿的预算,预测票房收益为1.75亿使用线性回归预测0.01.02.01.0BudgetBox Officex108x1082.0哪个模型拟合得更好?0.01.02.01.0BudgetBox Officex108x1082.0Predicted valueObserved value()()计算残差0.01.02.01.0BudgetBox Officex108x1082.001+()()计算残差0.01.02.01.0BudgetBox Officex108x1082.0均方误差(MeanSquaredError,MSE)0.01.02.01.0BudgetBox Officex108x10
3、82.0最小均方误差0.01.02.01.0BudgetBox Officex108x1082.0代价函数其他评价指标MAEistheeasiesttounderstand,becauseitstheaverageerror.MSEismorepopularthanMAE,becauseMSEpunisheslargererrors.RMSEisevenmorepopularthanMSE,becauseRMSEisinterpretableintheyunits.残差平方和(SSE):总离差平方和(TSS):决定系数决定系数(R2):):1 其他评价指标导入包含回归方法的类:导入包含回归方法
4、的类:from sklearn.linear_model import LinearRegression创建该类的一个对象:创建该类的一个对象:LR=LinearRegression()训练模型拟合数据,并预测:训练模型拟合数据,并预测:LR=LR.fit(X_train,y_train)y_predict=LR.predict(X_test)线性回归的语法http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html通过增加多项式特征来捕捉更高阶的数据特征()=0+1 +22
5、BudgetBox Office增加多项式特征通过增加多项式特征来捕捉更高阶的数据特征“线性回归”意味着特征间的线性组合()=0+1 +22+33BudgetBox Office增加多项式特征()=0+1 log()BudgetBox Office增加多项式特征通过增加多项式特征来捕捉更高阶的数据特征“线性回归”意味着特征间的线性组合增加多项式特征可以选择变量间的交互项:()=0+11+22+312增加多项式特征可以选择变量间的交互项:如何选择正确的函数形式:()=0+11+22+312检查每个变量与结果之间的关系导入包含转换方法的类:导入包含转换方法的类:from sklearn.prepr
6、ocessing import PolynomialFeatures创建该类的一个对象:创建该类的一个对象:polyFeat=PolynomialFeatures(degree=2)创建多项式特征,并转换数据:创建多项式特征,并转换数据:polyFeat=polyFeat.fit(X_data)x_poly=polyFeat.transform(X_data)或者或者 x_poly=polyFeat.fit_transform(X_data)生成多项式特征的语法http:/scikit-learn.org/stable/modules/generated/sklearn.preprocessi
7、ng.PolynomialFeatures.htmlerrorcross validation errortraining error21模型复杂度与误差XYModelTrue Function SamplesXYXYPolynomial Degree=1Polynomial Degree=3Polynomial Degree=922防止欠拟合与过拟合如何用一个如何用一个9次多项式拟合数据,并防止过拟合?次多项式拟合数据,并防止过拟合?XYModelTrue Function SamplesXYXYPolynomial Degree=1Polynomial Degree=3Polynomial
8、 Degree=923防止欠拟合与过拟合XYModelTrue Function SamplesXYXYPoly Degree=9,=0.1Poly Degree=9,=1e-5Poly Degree=9,=0.024正则化(regularization)惩罚项收缩了所有系数的大小越大的系数被惩罚得越多,因为惩罚的是平方25岭回归(RidgeRegression)(L2)26岭回归对模型参数的效果惩罚项有选择地收缩了某些系数可以被用来做特征选择比岭回归收敛速度慢27套索回归(LassoRegression)(L1)28套索回归对模型参数的效果L1与L2正则化岭回归和套索回归的综合,用以平衡稀疏
9、和平滑两个问题需要调节额外的参数,来分配L1和L2正则化惩罚项的比例10ElasticNet正则化正则化系数(1 和2)是根据经验决定的使用测试数据调节使用测试数据调节?测试数据训练数据训练数据超参数及其优化正则化系数(1 和2)是根据经验决定的想让模型泛化-不要使用测试数据集来调节1 和2使用测试数据集调节使用测试数据集调节?测试数据训练数据训练数据超参数及其优化NO!用交叉验证来调节用交叉验证来调节 训练数据数据验证数据数据测试数据数据超参数及其优化正则化系数(1 和2)是根据经验决定的想让模型泛化-不要使用测试数据集来调节1 和2划分出另一个数据集来调节超参数-验证集(validatio
10、n set)导入包含回归方法的类:导入包含回归方法的类:from sklearn.linear_model import Ridge创建该类的一个对象:创建该类的一个对象:RR=Ridge(alpha=1.0)拟合训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:RR=RR.fit(X_train,y_train)y_predict=RR.predict(X_test)岭回归的语法导入包含回归方法的类:导入包含回归方法的类:from sklearn.linear_model import Ridge创建该类的一个对象:创建该类的一个对象:RR=Ridge(alpha=1.0)拟合
11、训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:RR=RR.fit(X_train,y_train)y_predict=RR.predict(X_test)岭回归的语法正则化参数正则化参数http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html导入包含回归方法的类:导入包含回归方法的类:from sklearn.linear_model import RidgeCV创建该类的一个对象:创建该类的一个对象:RRcv=RidgeCV(alphas=1e-3,1e-2,1e-1,1,
12、cv=4)拟合训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:RRcv=RRcv.fit(X_train,y_train)y_predict=RRcv.predict(X_test)岭回归的语法RidgeCV 使用交叉验证自动确定使用交叉验证自动确定alpha的值的值http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.RidgeCV.html导入包含回归方法的类:导入包含回归方法的类:from sklearn.linear_model import Lasso创建该类的一个对象:创建该类的一个
13、对象:LR=Lasso(alpha=1.0)拟合训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:LR=LR.fit(X_train,y_train)y_predict=LR.predict(X_test)套索回归的语法正则化参数正则化参数http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html导入包含回归方法的类:导入包含回归方法的类:from sklearn.linear_model import LassoCV创建该类的一个对象:创建该类的一个对象:LRcv=LassoCV
14、(alphas=1e-3,1e-2,1e-1,1,cv=4)拟合训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:LRcv=LRcv.fit(X_train,y_train)y_predict=LRcv.predict(X_test)套索回归的语法LassoCV 使用交叉验证自动确定使用交叉验证自动确定alpha的值的值http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.LassoCV.html导入包含回归方法的类:导入包含回归方法的类:from sklearn.linear_model imp
15、ort ElasticNet创建该类的一个对象:创建该类的一个对象:EN=ElasticNet(alpha=1.0,l1_ratio=0.5)拟合训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:EN=EN.fit(X_train,y_train)y_predict=EN.predict(X_test)ElasticNet回归的语法l1_ratio把把alpha的值分的值分配给配给L1/L2http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html导入包含回归方法的类:导
16、入包含回归方法的类:from sklearn.linear_model import ElasticNetCV创建该类的一个对象:创建该类的一个对象:ENcv=ElasticNetCV(alphas=1e-3,1e-2,1e-1,1,cv=5)拟合训练数据,并在测试数据上预测:拟合训练数据,并在测试数据上预测:ENcv=ENcv.fit(X_train,y_train)y_predict=ENcv.predict(X_test)ElasticNet回归的语法ElasticNetCV 使用交叉验证自动确定使用交叉验证自动确定alpha和和l1_ratio的值的值http:/scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNetCV.htmlJupyter演示第6章-线性回归.ipynb