回归算法:回归是用于估计两种变量之间关系的统计过程。
1).线性回归:所获取的结果值是连续的。LinearRegression
1.岭回归(Ridge),L2正则(平方)
2.Loss回归,L1正则(绝对值)
3.Elastic Net回归,弹性网络算法(同时使用L1和L2)
4.参数求解方式:1.最小二乘法,2.梯度下降
5.数据欠拟合问题:1.算法学习能力比较弱,2.数据样本少,3.有用的特征属性少
解决方法:1.换一个算法比如:eg,svm,集成算法,2.增加样本数据,3.增加特征属性
6.数据过拟合问题:1.算法学习能力过强,2.数据样本少,3.太多的特征增维操作
解决方法:1.换一个算法模型加入正则化系数(L1,L2),2.增加样本数据,3.多项式扩展时(PolynomialFeatures),不要做太深的维度增维操作
2).Logistic回归(分类回归:二分类):LogisticRegression(multi_class='ovr')
3.)SoftMax回归(分类回归:多分类):LogisticRegression(multi_class='multinomial')
4).梯度下降(SGD、BGD、MBGD)
SGD:随机梯度值下降,优点:效率快,缺点:可能跳过局部最优解。优先选择SGD
BGD:每次迭代都需要对批量样本的梯度值求平均梯度下降值,优势:可以得到局部最优解,缺点:效率慢
MBGD:小批量的随机梯度值下降(m个批量样本中随机挑选n个样本)
调参:通过交叉验证方式获取最佳参数
K折交叉验证(K-Fold):
是指在模型训练过程中,主要用于模型参数选择的一种方式。
步骤:
-1. 将fit传入的train的训练数据平均分成K份
-2. 对于当前模型参数,使用其中的K-1份数据作为模型的训练数据,使用另外一份数据作为模型的验证数据集,得到当前模型在当前数据划分情况下的评估指标(默认就是模型自带的scoreAPI);迭代所有的数据组成方式,得到当前模型在当前所有划分组合数据集上的K个评估指标,然后将这K个指标求均值,作为当前模型参数在训练数据train上的效果衡量值s
-3. 使用上一步,遍历所有的模型参数取值的可能,得到所有模型的衡量值s
-4. 使用模型效果衡量值最好的那个对应的算法模型作为最终的模型
eg: RidgeCV(alphas=[0.1, 0.2, 0.3], cv=5)
备注:将所有的训练数据划分为5份,编号为1,2,3,4,5
-1. 当前模型参数: alpha=0.1;
--1. 训练数据集: 1,2,3,4;验证集: 5;模型效果s11
--2. 训练数据集: 1,2,3,5;验证集: 4;模型效果s12
--3. 训练数据集: 1,2,4,5;验证集: 3;模型效果s13
--4. 训练数据集: 1,3,4,5;验证集: 2;模型效果s14
--5. 训练数据集: 2,3,4,5;验证集: 1;模型效果s15
--6. 求score的均值: s1 = (s11 + s12 + s13 + s14 + s15) / 5
-2. 当前模型参数: alpha=0.2;
--1. 训练数据集: 1,2,3,4;验证集: 5;模型效果s21
--2. 训练数据集: 1,2,3,5;验证集: 4;模型效果s22
--3. 训练数据集: 1,2,4,5;验证集: 3;模型效果s23
--4. 训练数据集: 1,3,4,5;验证集: 2;模型效果s24
--5. 训练数据集: 2,3,4,5;验证集: 1;模型效果s25
--6. 求score的均值: s2 = (s21 + s22 + s23 + s24 + s25) / 5
-3. 当前模型参数: alpha=0.3;
--1. 训练数据集: 1,2,3,4;验证集: 5;模型效果s31
--2. 训练数据集: 1,2,3,5;验证集: 4;模型效果s32
--3. 训练数据集: 1,2,4,5;验证集: 3;模型效果s33
--4. 训练数据集: 1,3,4,5;验证集: 2;模型效果s34
--5. 训练数据集: 2,3,4,5;验证集: 1;模型效果s35
--6. 求score的均值: s3 = (s31 + s32 + s33 + s34 + s35) / 5
-4. 在这三组参数中,根据s1\s2\s3的取值,选择一个最大的作为最优模型。
eg: ElasticNetCV(alphas=[0.1,0.2,0.3], l1_ratio=[0.5,0.8], cv=5)
备注:将所有的训练数据划分为5份,编号为1,2,3,4,5
-1. 当前模型参数: alpha=0.1, l1_ratio=0.5;
-2. 当前模型参数: alpha=0.1, l1_ratio=0.8;
-3. 当前模型参数: alpha=0.2, l1_ratio=0.5;
-4. 当前模型参数: alpha=0.2, l1_ratio=0.8;
-5. 当前模型参数: alpha=0.3, l1_ratio=0.5;
-6. 当前模型参数: alpha=0.3, l1_ratio=0.8;