032 《机器学习算法的数学解析与Python实现》读书笔记

目录

一、随笔

二、笔记


一、随笔

     这本书还是很友好的,书中可以认为全称不含晦涩难懂的公式,对于算法的思想解释, 却是简单易懂的。相信参照下涵盖了算法很多数学概念的书籍和此本书对照学习,对于数学概念的理解,可能也会变得有所友好吧。

学习机器学习的路途是坎坷和颠簸的,唯一不缺的就是让你半途而废的借口。

 学习新知识的最大乐趣在于分享。

也许你还需要时间思考自己到底要什么,也许你只是走过路过,顺道过来看看。 

任何巧妙的解决方案都依赖特定的前提条件,否则就成为闭门造车。 

    最近看书学习有点偷懒好像,进展、成效都甚微。理理思绪,整好装备,全力以赴!


《机器学习算法的数学解析与Python实现》作者:莫凡


二、笔记

《机器学习算法的数学解析与Python实现》总结
算法算法具体步骤要点优点缺点应用领域sklearn库
线性回归算法“三板斧”:
第一步:为假设函数设定参数W,通过假设函数画出一条直线,即根据输入的点通过线性计算得到预测值;
第二步:将预测值带入损失函数,计算出一个损失值;
第三步:通过得到的损失值,利用梯度下降等
凸优化方法,不断调整假设函数的参数W,使得损失值最小。这个不断调整参数W使得损失值最小化的过程就是线性回归的学习过程,通常称为训练模型。
1.回归问题
2.线性方程
3.偏差度量
4.权值更新
1.线性模型形式简单;
2.可解释性强;
3.容易理解和实现
1.线性模型不能表达复杂的模式;
2.对于非线性问题表现不佳
线性回归适用的应用领域很广,包括金融领域和气象领域,特别适用于对能够用线性关系进行描述的问题领域,线性回归实现简单,遇到回归问题可以首先使用线性回归试试linear_model类库当前含39类,其中的典型类:
LinearRegression类
Ridge类
Lasso类
LogisticRegression类
Logistic回归分类算法三步:
第一步:为假设函数设定参数W,通过假设函数计算出一个预测值;
第二步:将预测值带入损失函数,计算出一个损失值;
第三步:通过得到的损失值,利用梯度下降等优化方法调整参数W。不断重复这个过程,使得损失值最小。
1.分类问题
2.Logistic函数
1.线性模型形式简单;
2.可解释性强;
3.容易理解和实现;
4.是计算代价较低的分类模型
分类的效果有时不好,容易欠拟合适用于二分类领域,或作为其他算法的“部件”,如作为神经网络算法的激活函数 
KNN分类算法三步:
第一步:
找K个最近邻。KNN分类算法的核心就是找最近的K个点,选定度量距离的方法之后,以待分类样本点为中心,分别测量它到其他点的距离,找出其中的距离最近的“TOP K”,这就是K个最近邻;
第二步:
统计最近邻的类别占比。确定了最近邻之后,统计出每种类别在最近邻中的占比;
第三步:
选取占比最多的类别作为待分类样本的类别
1.多数表决
2.距离
1.理论形式简单,容易实现;
2.新加入数据时不必对整个数据集进行重新训练
3.可以实现在线训练
1.对样本分布比较敏感;
2.正负样本不平衡时会对预测有明显影响;
3.数据集规模大时计算量将加大
模式识别、文本分类、多分类领域neighbors类库当前含13类,代表性类:
KNeighborsClassifier类
KNeighborsRegressor类
RadiusNeighborsClassifier类
NearestNeighbors类
KDTree类
BallTree类
朴素贝叶斯三步:
第一步:
统计样本数据。需要统计先验概率P(y)和似然度P(x|y);
第二步:
根据待遇测样本所包含的特征,对不同类分别进行后验概率计算。比如总的特征有A、B、C三项,但待测样本只包含A、C两项,那y1后验概率的计算方法就为P(y1)P(A|y1)P(B|y1);
第三步:比较y1,y2,...,yn的后验概率,哪个概率值最大就将其作为预测值输出。
1.条件概率
2.先验概率
3.后验概率
4.似然度
1.运用了统计学成熟的理论,可解释性强;
2.对于大规模数据集训练效率较高
对数据样本的特征维度作了“彼此独立”的假设,如果实际情况并非如此则可能导致预测偏差增加常用于垃圾邮件分类,以及其他文本分类。naive_bayes类库包含四类:
MultinomialNB类
BernoulliNB类
GaussianNB类
决策树分类算法四步:
第一步:选定纯度度量指标;
第二步:利用纯度度量指标,依次计算依据数据集中现有的各个特征得到的纯度,选取纯度能达到最大的那个特征作为该次的“条件判断”;
第三步:利用该特征作为“条件判断”切分数据集,同时将该特征从切分后的子集中剔除(也即不能再用该特征切分子集了);
第四步:重复第二、第三步,直到再没有特征,或切分后的数据集均为同一类。
1.决策树的分类方法
2.分支节点划分
3.纯度度量
1.算法逻辑清晰,对程序员尤其友好;
2.树形结构容易可视化,能够比较直观地观察分类过程
1.最大也是最突出的缺点就是容易过拟合;
2.特征维度存在关联关系时也会对预测结果产生明显影响
适用于需要“决策”的领域,如商业决策、管理决策等,不过作为一种热门算法,决策树应用领域非常广泛tree类库中提供7个类,3个用于导出和绘制决策树,另外四类:
DecisionTreeClassifier类
DecisionTreeRegressor类
ExtraTreeClassifier类
ExtraTreeRegressor类
支持向量机分类算法三步:
第一步:选取一个合适的数学函数作为核函数;
第二步:核函数完成高维映射并完成计算间隔所需的内积运算,求得间隔;
第三步:使用SMO等算法使得间隔最大。
1.最大间隔
2.高维映射
3.核方法
1.能解决非线性问题;
2.训练不依赖全部数据;
3.能够较好地解决小样本分类问题
4.泛化能力强
1.对非线性问题缺乏通解,在部分情况下要找到合适的核函数并不容易;
2.原始支持向量机只支持二分类
原始的支持向量机只适用于解决二分类问题,但已有多种方法将支持向量机拓展用于多分类问题,支持向量机作为一种热门算法,被广泛用于各种分类问题,如文本分类等svc类库中当前含8个类:具体为:
LinearSVC类
LinearSVR类
SVC类
SVR类
NuSVC类
NuSVR类
OneClassSVM类:解决无监督学习的异常点检测问题
K-means聚类算法五步:
第一步:随机选取K个对象,以它们为质心;
第二步:计算数据集到质心的距离;
第三步:将对象划归(根据距离哪个质心最近);
第四步:以本类内所有对象的均值重新计算质心,完成后进行第二步;
第五步:类不再变化后停止。
1.聚类问题
2.簇
3.质心
4.多数表决
1.原理简单;
2.容易实现;
3.运算效率高
1.需要人为地设置聚类的簇的个数;
2.只适用于特征维度为数值类型的数据;
3.随机初始化可能影响聚类的最终效果;
4.对孤立点非常敏感
适用于特征维度为数值型的聚类问题,如通过体育赛事中运动员的各类表现数据进行聚类cluster类库中当前含10个类,代表类如下:
KMeans类
MiniBatchKMeans类
DBSCAN类
MeanShift类
AffinityPropagation类
神经网络分类算法五步:
第一步:初始化神经网络中所有神经元激励函数的权值;
第二步:输入层接收输入,通过正向传播产生输出;
第三步:根据输出的预测值,结合实际值计算偏差;
第四步:输出层接收偏差,通过反向传播机制让所有神经元更新权值;
第五步:第2—4步是神经网络模型一次完整的训练过程,重复进行训练过程直到偏差最小。
1.神经元
2.兴奋传递
3.激活函数
4.反向传播机制
1.网络结构拓展性好;
2.对复杂的“神秘函数”如非线性函数,只通过简单地调节参数也往往能有令人意外的表现
1.可解释性差;
2.调参依赖经验;
3.可能陷入局部最优解
神经网络算法拟合能力强,应用领域很广,在文本分类等领域都有应用,其衍生出来的深度学习算法更是当前最为热门的机器学习算法分支,在图像处理、语音识别和自然语言处理等多个领域都有非常突出的表现neural_network类库中含3个类:
MLPClassifier类
MLPRegressor类
BernoulliRBM类
集成学习方法具体实现方式:
第一种:Bagging算法。并行集成学习方法
第二种:Boosting算法。串行集成学习方法
第三种:Stacking算法。学习期分两层,第一层若干弱学习器,第二层则通常只有一个学习模型,第二层学习期是基于第一层预测结果的预测
   集成学习不是一款别具匠心的机器学习算法,而是一套组合多种机器学习模型的框架,它的适用面很广,可以用于分类问题、回归问题、特征选取和异常点检测等各类机器学习任务。sklearn库只直接提供了Bagging和Boosting两种集成学习方法,都在ensemble类库中。当前含有16个集成学习类,常用类有:
RandomForestClassifier类
RandomForestRegressor类
ExtraTreesClassifier类
ExtraTreesRegressor类
AdaBoostClassifier类
AdaBoostRegressor类
GradientBoostingClassifier类
GradientBoostingRegressor类
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步,慕至千里

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值