Ⅰ、 机器学习模型

一、KNN--k近邻算法

二、回归算法

2.1.线性回归

2.1.1梯度下降

2.2.逻辑斯蒂回归

2.3.lasso回归

2.4.岭回归

三、朴素贝叶斯

3.1.分类算法,主要用于文本分类

四、决策树

4.1.一般用于分类,但是容易造成过拟合,一般不怎么用,多用随机森林
4.2.ID3算法
4.3.C4.5算法
4.4.CART算法

五、随机森林

六、SVM--支持向量积

SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。

图片说明
6.1.SVM主要针对小样本数据进行学习、分类和预测(有时也叫回归)的一种方法,能解决神经网络不能解决的过学习问题,而且有很好的泛化能力

6.2.是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。
6.3.SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
6.4.主要可以解决线性不可分问题
图片说明

6.5.对于输入空间中的非线性分类问题,可以通过非线性变换将它转化为某个维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。
图片说明

图片说明
6.6.常见核函数
1)线性核函数 (linear)
2)多项式核函数(Poly)

  • 调参:-d:多项式核函数的最高次项次数,-g:gamma参数,-r:核函数中的coef0
    3)高斯核函数(RBF)
  • -g:gamma参数,默认值是1/k
    4)sigmoid核函数【并不常用】
  • g:gamma参数,-r:核函数中的coef0

其中有两个重要的参数,即 C(惩罚系数) 和 gamma,gamma 越大,支持向量越少,gamma 越小,支持向量越多。而支持向量的个数影响训练和预测的速度。C越高,容易过拟合。C越小,容易欠拟合。

6.1.SVC

6.2.SVR

七、Kmeans--k均值聚类算法

K-Means算法的思想对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

7.1.聚类,无监督学习,对于无标签数据进行分类
7.2.kmeans是一种基于距离的距离算法,将距离比较近的数据点看作相似的点,将它们归为一类。
图片说明

7.3.K-Means主要最重大的缺陷——都和初始值有关
7.4.实现步骤

  • 1、从数据中选择k个对象作为初始聚类中心;
  • 2、计算每个聚类对象到聚类中心的距离来划分;
  • 3、再次计算每个聚类中心
  • 4、计算标准测度函数,直到达到最大迭代次数,则停止,否则,继续操作。
  • 5、确定最优的聚类中心

7.6.kmeans常见错误

  • incorrect number of clyster k值不合适
  • 数据偏差
  • 数据标准差不同
  • 样本数量不同

八、DBSCAN 基于密度的噪声空间聚类算法

DBSCAN 算法是基于密度对数据点进行处理的,主要是将特征空间中足够密集的点划分为同一个簇,簇的形状可以是任意的,而且数据点中有噪声点的话,不会将这些点划分给某个簇。

8.1.优点
1、不需要我们指定数据集中簇的个数K。
2、前面说K均值聚类通常只在球形分布的数据集上分类效果比较好,而 DBSCAN 聚类则可以用于各种复杂形状的数据集。
3、可以识别出不属于任何簇的离群点,非常适合用来检测离群点。

8.2.DBSCAN 算法是基于密度的算法,所以它将密集区域内的点看作核心点(核心样本)。主要有两个参数:min_samples和eps。eps表示数据点的邻域半径,如果某个数据点的邻域内至少有min_sample个数据点,则将该数据点看作为核心点。

GBDT

1.一般用作特征选择

Ⅱ、PCA降维

思想:PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维

from sklearn.decomposition import PCA
pca降维

pca = PCA(n_components=0.8,whiten=True)
#设置PCA参数
#n_components:
#设为大于零的整数,会自动的选取n个主成分,
#设为分数时,选择特征值占总特征值大于n的,作为主成分
#whiten:
#True表示做白化处理,白化处理主要是为了使处理后的数据方差都一致
pca.fit(data)
X_train_pca = pca.transform(X_train)
X_test_pca = pca.transform(X_test)
#SVM建模
svc = SVC(kernel='rbf')
svc.fit(X_train_pca,y_train)

Ⅲ、网格搜索交叉验证

1.网格搜索(Grid Search)
是指定参数值的一种穷举搜索法,通过将估计函数的参数通过交叉验证的方式进行优化来得到最优的学习算法。
即:将各个参数可能的取值进行排列组合,列出所有可能的组合结构生成“网格”。然后将各个参数组合用于SVM训练,并使用交叉验证对表现进行评估。在拟合函数尝试了所有的参数组合后,返回一个合适的分类器,自动调整至最佳参数组合,可以通过clf.best_params_获取参数值。

Ⅳ、特征工程

  • 意为:从数据中抽取出对结果预测有用的数据
  • 意义:
     1.更好的特征意味着更强的灵活性
     2.更好的特征意味着只需要简单的模型
     3.更好的特征意为着更好的结构
  • 影响模型好坏的因素有:
      1.模型的选择,
      2.可用的数据,
      3.特征的提取。
  • 特征工程的重要环节:
                   1.数据采集-【考虑哪些数据有用】
                   2.数据格式化-【确定存储格式,例如时间格式、int、float等】
                   3.数据清洗-【错误数据(不合正常逻辑)】
                            -【组合或统计属性判断(如判断一个人是否会买篮球鞋,样本中女性用占85%)】
                            -【补齐可对应的缺失值:不可信的样本丢掉,缺省极多的字段考虑不用】
                    4.数据采样-【正负样本不均衡】
                        解决办法:1.正样本很大,一类样本数量>>另一类样本数量,使用下采样。对较多的数据进行采样,使两类样本数量达到一定比例。
                                 2.正样本量不大,一类样本数量>>另一类样本
                                   2.1 采集更多的数据【欠采样】
                                   2.2 oversampling【过采样】,硬生生增加量少的一方样本,(如增加几倍的量少的样本,但容易出现过拟合)
                                   2.3 修改loss function,(例如增加量大的样本的惩罚权重)
                        选择:对于欠采样,砍掉的数据会导致某些隐含信息的丢失;对于过采样,有放回的抽样形成的简单复制,又会使模型产生过拟合。
                          选择SOMTE算法处理样本不均衡,思想:
                              -采样最邻近算法,计算出每个少数类样本的K个近邻;
                              -从K个近邻中随机挑选N个样本进行随机线性插值;
                              -构造新的少数类样本;
                              -将新样本与原数据合成,产生新的训练集;