欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python人工智能经典算法之聚类算法

程序员文章站 2024-03-15 11:08:49
...
5.3 Boosting【**】
    1.boosting集成原理
        随着学习的积累从弱到强
    2.实现过程
        1.初始化训练数据权重,初始权重是相等的
        2.通过这个学习器,计算错误率
        3.计算这个学习期的投票权重
        4.对每个样本进行重新赋权
        5.重复前面1-4
        6.对构建后的最后的学习器进加权投票
    3.bagging集成与boosting集成的区别:
        数据方面:
            bagging:重新采样
            boosting:对数据进行权重调整
        投票方面:
            bagging:平权
            boosting:加权
        学习顺序方面:
            bagging:并行
            boosting:串行
        主要作用:
            bagging:过拟合
            boosting:欠拟合
    2 GBDT
        梯度提升决策树(GBDT Gradient Boosting Decision Tree)
        GBDT = 梯度下降 + Boosting + 决策树
    3.XGBoost
        XGBoost= 二阶泰勒展开+boosting+决策树+正则化

6.聚类算法
6.1 聚类算法简介
    1.聚类算法分类
        粗聚类
        细聚类
    2.定义
        一种典型的无监督学习算法,
        主要用于将相似的样本自动归到一个类别中
        计算样本和样本之间的相似性,一般使用欧式距离
6.2 聚类算法api初步使用
    1.api
        sklearn.cluster.KMeans(n_clusters=8)
        参数:
        n_clusters:开始的聚类中心数量
6.3 聚类算法实现流程【***】
    k-means其实包含两层内容:
        k -- 选几个中心店
        means -- 均值计算
    流程
        1、随机设置K个特征空间内的点作为初始的聚类中心
        2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别
        3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)
        4、如果计算得出的新中心点与原中心点一样(质心不再移动),那么结束,否则重新进行第二步过程
    kmeans小结
        kmeans由于要计算质心到每一个样本的距离,所以其收敛速度比较慢
6.4 模型评估【**】
    0.sse
        误差平方和
        值越小越好
    1. 肘部法
        ​ 下降率突然变缓时即认为是最佳的k值
    2. SC系数
        ​ 取值为[-1, 1],其值越大越好
    3. CH系数
        ​ 分数s高则聚类效果越好
        CH需要达到的目的:
            用尽量少的类别聚类尽量多的样本,同时获得较好的聚类效果。
6.5 算法优化【***】
    1.k_means
        优点:
            简单,容易理解
        缺点:
            特别人容易陷入到局部最优解
    2.Canopy
        通过绘制同心圆,进行k值选择筛选
        需要确定同心圆的半径t1,t2
    3.K-means++
        距离平方进行求解
        保证下一个质心到当前质心,距离最远
    4.二分k-means
        通过误差平方和,设置阈值,然后进行划分
    5.k-medoids
        和kmeans选取中心点的方式不同
        通过从当前点选择中心点(质心)进行判断
    6.kernel kmeans【了解】
        映射到高维空间
    7.ISODATA【了解】
        动态聚类
        可以更改k值的大小
    8.Mini-batch K-Means【了解】
        大数据集分批聚类

6.6 特征降维【***】
    1.定义
        就是改变特征值,选择哪列保留,哪列删除
        目标是得到一组”不相关“的主变量
    2.降维的两种方式
        特征选择
        主成分分析(可以理解一种特征提取的方式)
    3.特征选择
        定义:提出数据中的冗余变量
        方法:
            Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联
                方差选择法:低方差特征过滤
                相关系数
            Embedded (嵌入式):算法自动选择特征(特征与目标值之间的关联)
                决策树:信息熵、信息增益
                正则化:L1、L2
                深度学习:卷积等
    4.低方差特征过滤
        把方差比较小的某一列进行剔除
        api:
            sklearn.feature_selection.VarianceThreshold(threshold = 0.0)
                删除所有低方差特征
                注意,参数threshold一定要进行值的指定
    5.相关系数
        主要实现方式:
            皮尔逊相关系数
            斯皮尔曼相关系数
        5.1 皮尔逊相关系数
            通过具体值的大小进行计算
            相对复杂
            api:
                from scipy.stats import pearsonr
                返回值,越接近|1|,相关性越强;越接近0,相关性越弱
        5.2 斯皮尔曼相关系数
            通过等级差进行计算
            比上一个简单
            api:
                from scipy.stats import spearmanr
                返回值,越接近|1|,相关性越强;越接近0,相关性越弱
    6.pca
        定义:
            高维数据转换为低维数据,然后产生了新的变量
        api:
            sklearn.decomposition.PCA(n_components=None)
                n_components
                    整数 -- 表示降低到几维
                    小数 -- 保留百分之多少的信息
6.7 案例:探究用户对物品类别的喜好【***】
    1.获取数据
    2.数据基本处理
    2.1 合并表格
    2.2 交叉表合并
    2.3 数据截取
    3.特征工程 — pca
    4.机器学习(k-means)
    5.模型评估
相关标签: python 机器学习

上一篇: java方法求质数

下一篇: