首先需要了解的一点:分类问题属于有监督学习;降维和聚类属于无监督学习类型。
有监督学习实例:鸢尾花数据分类
我们使用简单的高斯朴素贝叶斯方法完成这个分类任务,该方法假设每个特征中属于每一类的观测值都符合高斯分布。
首先划分训练集和测试集:train set和test set。
如上图,具体每一步含义见程序注释。
最终预测结果高达97%,说明这个简单的分类算法可以有效的学习这个数据集。
无监督学习:鸢尾花降维
降维任务是要找到一个可以保留数据本质特征的低维矩阵来表示高维数据。降维可以用来辅助数据可视化的工作。
下面使用主成分分析法PCA把四维鸢尾花数据降为二维数据。
接下来将二位数据插入到鸢尾花的DataFrame中,然后画出结果图。
插入后DataFrame数据形式此时形式如下:
Implot拟合不同模型
(1.1)lmplot默认参数线性拟合
(1.2)lmplot的order参数,设置高阶拟合
(1.3)lmplot的robust参数,设置抗噪声鲁棒性
(1.4)lmplot的logistic参数,设置拟合曲线是logistic(二类分类模型)
(1.5)col:根据所指定属性在列上分类
(1.6)row:根据所指定属性在行上分类
(1.7)fit_reg 表示回归的直线要不要画出来
从二维数据图可以看到,虽然PCA算法不知道数据标签,但是仍然将鸢尾花类别清楚的分类出来!
无监督学习示例:鸢尾花数据聚类
我们使用一个强大的聚类方法——高斯混合模型(GMM)。GMM模型试图将数据构造成若干服从高斯分布的概率密度函数簇。
我们通过上一步PCA将数据降维到平面,接下来使用聚类算法将以上3个类别的鸢尾花分为3个簇。
GMM参数:
# 1. n_components:混合高斯模型个数,默认为1
# 2. covariance_type:协方差类型,包括{‘full’,‘tied’, ‘diag’, ‘spherical’}四种,分别对应完全协方差矩阵(元素都不为零),相同的完全协方差矩阵(HMM会用到),对角协方差矩阵(非对角为零,对角不为零),球面协方差矩阵(非对角为零,对角完全相同,球面特性),默认‘full’ 完全协方差矩阵
# 3. tol:EM迭代停止阈值,默认为1e-3.
# 4. reg_covar:协方差对角非负正则化,保证协方差矩阵均为正,默认为0
# 5. max_iter:最大迭代次数,默认100
# 6. n_init:初始化次数,用于产生最佳初始参数,默认为1
以上输出预测的簇标签。
接下来根据簇数量对数据进行分割,就会清晰的看到GMM的训练效果。
其中的第一类cluster=0被完美的分割出来,唯一遗憾的是cluster=2有些许的混淆。
我们将fit_reg设置为True,可以看到回归直线:
即使不知道鸢尾花的类别,但是我们仍旧通过以上简单的聚类算法自动的识别出了不同类别的花!
这种算法还可以帮助我们探索观察不同样本之间的关联性。
网友评论