回归算法:回归是用于估计两种变量之间关系的统计过程。
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;