Python机器学习实践

前面几篇博文已经整理了Python做数据分析和建模以及机器学习基础知识。

这篇博文主要分享Python做数据分析和建模的实践案例应用。

分为两部分:

1、Python机器学习实践案例的算法总结。

     见博文下方的算法总结表格。

2、案例和代码实现。

     每个案例单独用一篇博文来讲解逻辑和Python代码实现。点击对应的链接到相应的博文中去阅读。

    (1)朴素贝叶斯、费舍尔分类器模型(文档分类)

            ---引申 用gesim-word2vec实现词矢量化

    (2)优化算法模型:

            [1] 旅行行程优化问题

            [2] 住宿房间分配问题

    (3)决策树分类建模

    (4)分级聚类、K均值聚类

              [1] 使用LSA潜在语义分析,聚类评论主题

    (5)KNN算法

            [1]数值预测、区间概率预测、概率密度图

            [2]协同过滤推荐简单实现

         ---引申  [3] 协同过滤推荐-pyspark实现

        ---引申  [4]spark的安装和Jupyter使用

    (6)寻找独立特征-非负矩阵因式分解

    (7)支持向量机

    (8)神经网络

    (9)特征工程

          [1]受限波兹曼机RBM在机器学习中的使用

          [2]在机器学习pipeline中同时使用PCA和LDA

          [3]线性判别式LDA的两种实现方式

          [4]主成分分析PCA的两种实现方式

          [5]用PCA、LDA、LR做人脸识别

 

机器学习实践案例算法总结
算法 算法描述/原理概述 适用的数据集类型 Python代码实现的主要步骤 优缺点说明
贝叶斯分类器 根据贝叶斯公式:P(cat|item) = P(item|cat)*P(cat)/P(item),
其中,P(item|cat) = P(feature|cat)*P(feature|cat)*P(feature|cat)*…
适应于所有能转换成一组特征列表的数据集。 1、定义特征提取函数getfeature
2、利用样本对分类器进行训练,得到记录了特征和某个特定分类相关联的数字概率P(feature|(cat)
3、分类预测(朴素贝叶斯分类器)
优点:
1、训练和分类计算的速度快
2、支持增量式的训练
3、特征的概率值被保存,所以分类学习的解释相对简单
缺点:
1、无法处理特征组合会产生分类结果影响的情况
决策树分类器 从根部开始构造决策树,在每一步中都会选择一个属性,利用该属性以最佳的可能方式对数据进行拆分。
对于构造完成的决策树,从树的根部节点开始,对每一个节点的判断条件进行检查,走相应的yes or no 分支直至叶节点,即代表新数据的预测分类
适应于数值型或者名词性的有分类结果的数据集 1、创建决策树。
熵、基尼不纯度衡量集合的混乱、不纯程度。信息增益来衡量一次拆分的好坏。
2、决策树剪枝
3、决策树显示--树状图/文本打印
4、决策树分类
优点:
1、易于对模型的解释和理解。重要的判断因素都在靠近根部的位置。
2、能处理变量之间的相互影响。
缺点:
1、不擅长对数值结果的预测。
2、不支持增量式的训练。
神经网络        
支持向量机SVM        
K最近邻算法KNN 对一个待预测的新数据项,将其与已经知道结果值的数据项进行比较,从中找出最为接近的若干项,并根据距离远近求其加权平均值以得到最终的预测结果。 可以做数值预测的数据集 1、对变量进行缩放处理和交叉验证
2、给出一个距离度量算法/相似度度量算法
3、加权KNN算法预测
优点:
1、简单易懂 2、合理的数据缩放量不但可以改善预测效果,还能知道预测过程中各个变量的重要程度。3、新的数据可以随时被添加进来,是一种online的技术。
缺点:
1、计算低效。每一个待预测项必须和所有其他数据进行比较。2、寻找合理的缩放因子的过程很乏味、计算和评估的计算工作量很大。
分级聚类 它是构造一颗由所有数据项构成的树的过程。
工作方式:寻找两个距离最接近的数据项,将它们合二为一,新聚类的"位置"等于原两个数据项位置的均值。重复此过程,直到每个数据项都被包含在了一个大的聚类中为止。
任何一个具有一个或多个数值属性的数据集 1、给出一个相关系数度量方法
2、分级聚类
3、绘制分级聚类树状图
优点:
1、层级结构可以显示为树状图的形状,易于解读
2、面对一个全新的数据集,并不清楚想要多少群组时可通过分级聚类观察出哪些群组最接近
K-Means聚类 它是将数据拆分到不同群组的方法。
工作方式:随机产生K个中心点的位置,将每个数据项都分配到距离最近的中心点。将中心位置移到分配给原中心点的所有项的平均位置处。重复上述聚类步骤。直到中心位置不再变化或达到某阈值。
任何一个具有一个或多个数值属性的数据集 1、给出想要的群组数量
2、给出一个相关系数度量方法
3、K-means聚类
4、打印分类群组结果
优点:
1、聚类得到的群组易于打印和识别
模拟退火算法 以一个随机推测的题解开始,以此为基准随机选择一个方向,找到另一个近似解,判断其成本值。如果新题解的成本值小,则替换原题解。如果成本值更大,则用概率觉得是否取代原题解。迭代至温度几乎为0时,返回题解。 给定定义域和成本函数的优化问题 1、确定变量定义域domain
2、定义成本函数costf
 
遗传算法 以一组种群题解开始,筛选出其中成本值最低的精英题解,利用变异、交叉的修改方法将精英题解扩充到原种群大小,称新得到的这个种群为下一代。迭代至一定代数或成本值达到某阈值或种群不再改变,返回成本值最低的作为最优解。 给定定义域和成本函数的优化问题 1、确定变量定义域domain
2、定义成本函数costf
 
非负矩阵因式分解NMF        

你可能感兴趣的:(python数据分析和建模,机器学习,算法模型分析方法)