省创每日打卡内容记录

本文详细介绍了SVM回归的原理,强调了SVM在epsilon限制下的优化目标。接着讨论了决策树的基本结构、优势、过拟合问题以及其在回归和分类中的应用。此外,还提到了集成学习的概念,特别是随机森林和额外树,以及Boosting算法如AdaBoost和Gradient Boosting的工作方式。
摘要由CSDN通过智能技术生成

省创每日打卡内容记录


blue:2020/04/13
今天主要看了SVM regression以及SVM背后一些看不懂的数学原理。SVM regression 和classification的不同在于,它是在epsilon限制下尽可能增加囊括的instance,而classification是增加margin和减少violation的trade-off。
前面提到SVC的权衡,这就需要在cost function中增加constraint项,用QP法进行解决。Dual Problem是解决原始问题的另外一种方法(是一种下限的求法),并且在feature数比instance数更多时,速度更快。
然后 填了前面kernel trick的坑,增加feature维度进行点积可以用原始维度点积的平方代替,这就让多项式transformation的扩展能力提升。

blue:2020/04/15
今天看了第六章决策树,决策树是一种很强的机器学习算法,它能够解决回归分类等很多问题,并且是下一章随机森林算法的组成部分。
决策树的基本结构很像数据结构中的树,从树的根出发分出很多枝节直到尽头leaf nodes,每个节点都是一个判断,在sklearn中决策树都是binary的,只有是与非。这种结构可以让预测速度很快(在树的结构平衡的时候,这个算法与二分法很类似为O(log2m))。除此之外,它不怎么需要对数据进行处理,比如说scaling。
决策树的一个节点有一些特定参数(sample:满足这个节点的数据量,value满足的这些数据属于各个class的数量,gini:这个节点的杂质比率impunity)。决策树的cost function是要让每个节点分出的child的杂志率以一定比重最小(数据越多比重越大),简单来说这是一种贪婪算法,追求的是单步最优(比如说小偷偷东西第一选择是先放入体积能够承受的最大价值商品),但是这不一定是全体最优,不过这可以简化计算量。Regression的规则也是相似的,只不过把杂质率或者熵值换成了均方误差。
决策树特定的计算原理决定了它的分类方法是有迹可循的,知道了它的分类标准手工也可以进行分类。这与神经网络不同,虽然能够得出正确的结果,但是很难直到它是为什么能够做出这样的决定(white box versus black box)
决策树是很容易overfitting的,因为没有一个参数能够最优先干预树的形成,一般来说hyperparameter有干预树的深度,leaf node的最小数据量等等。
最后谈谈决策树的缺点,决策树的分类边界是与坐标轴正交的(不是大于就是小于)这使得数据的分布方向会极大影响树的结构。再来,树的形成是具有一定的随机因素的,也就是说:有可能相同数据,每次跑出来的结构都不一样,缺乏稳定性,这个问题下一章的Random Forests能将其解决。


blue:2020/04/16
今天看了部分第七章Ensemble learning集成学习,这一步往往发生在机器学习的最后,当我们已经训练出一个良好的模型,想要再更进一步的时候,是一个很好的选择。
集成算法的基本思想是,通过training sets训练出一系列的模型,把他们看成一群公民进行投票,对于一个新的数据,最终的预测结果取各个模型中选择最多的class(classification)或者取它们预测值的average(regression)。(在分类的层面上,这种方式成为hard voting。对应的还有一个soft voting,是将各个predictor分类的概率去平均,这种方法往往比hard voting好,因为confident votes的权重更大。)这种方式得出的预测值正确率很可能比单一模型更高。

 这背后的数学原理是大数定律,虽然说我将training sets分给了多个模型进行训练,降低了单个模型的准确率。但是就像我投100次硬币到投掷1000次硬币来估计正反面的概率,虽然投掷少少的几次,我的估计值偏差很大,但是投掷的数量(使用模型的数量)达到一定程度,我还是能逼近一个满意的成果。当然,大数定律有个前提就是每次实验要是独立的,这要求我们使用的模型直接的关联性要小,比如我们要选择原理差距很大的模型,或者我们要对training set进行独立抽样。确保每个模型之间不会发生相似的错误,使得错误聚集。
除此之外,集成算法还有一个优势,就是各个模型可以独立使用一个CPU或者GPU核平行运算,提高计算速度。
最后来谈谈使用集成算法的几个方法(今天就看了一个),第一个是bagging or pasting。bagging就是对数据(或者feature,只抽样feature是random subspace,两个都抽是random patches)进行有放回的抽样,而pasting就是不放回的抽样。有放回的抽样可以增加数据的多样性,使得偏差略增或是不变,而方差降低。
Random Forests就是集成算法中的一种,它将多个决策树集成在了一起。只不过还增加了在分节点时的随机性:原本是找局部最优分类的feature,现在是随机选去subset的feature进行选取。

blue:2020/04/17
看完第七章啦,接下来我就直接转战深度学习了。其他以后再看。今天直接按名字顺序讲新的ensemble algorithm
1、Extra-Tree,全称Extremely randomized tree。一种特殊地随机森林,顾名思义它非常随机,不仅筛选的feature是随机组,就连阈值也是随机的,这意味着更小的variance
2、Boosting, 继bagging之后第二大集成方法。
第一种算法AdaBoost:和bagging平行训练模型不同,Adaboost是成长型的,首先训练第一代,然后根据第一代的准确性给予第一代权重,并把提高判断错误的instance的权重,然后用这些赋予新权重的instance去训练下一代模型,这样一代一代的产生足够多的模型。最后预测的时候选择指向同个class权重和最大的结果。
第二种Gradient Boosting,也是一代传一代,但是第二代是把第一代的残差作为label,进行训练。最后的结果是所有模型预测值之和(regression)。
3、Stacking:套娃算法,想法是将原本的soft voting或者hard voting用一个训练好的模型替代,比如(设置两个layer):讲training  set分成两个部分,一个部分训练第一层模型,然后将第二个部分输入第一层得到预测值来训练第二层。想要训练多少层就要分成多少个sub training set。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js是一种流行的JavaScript框架,用于构建用户界面。要实现每日打卡功能,你可以按照以下步骤进行: 1. 创建一个Vue组件,用于显示打卡相关的信息和按钮。 2. 在组件的data属性中定义一个变量,用于记录打卡状态,比如isPunched。 3. 在组件的methods属性中定义一个方法,用于处理打卡逻辑。当用户点击打卡按钮时,该方法会被调用。 4. 在方法中,你可以使用JavaScript的Date对象获取当前日期,并将其与用户上次打卡的日期进行比较。如果日期不一致,表示用户需要进行打卡操作。 5. 如果需要保存用户的打卡记录,你可以使用浏览器的本地存储(localStorage)或者发送请求到服务器来保存数据。 下面是一个简单的示例代码: ```html <template> <div> <p v-if="isPunched">今日已打卡</p> <p v-else>今日未打卡</p> <button @click="punch">打卡</button> </div> </template> <script> export default { data() { return { isPunched: false }; }, methods: { punch() { const lastPunchDate = localStorage.getItem('lastPunchDate'); const currentDate = new Date().toLocaleDateString(); if (lastPunchDate !== currentDate) { // 执行打卡逻辑 // ... // 更新打卡状态和日期 this.isPunched = true; localStorage.setItem('lastPunchDate', currentDate); } } } }; </script> ``` 在上面的示例中,我们使用了Vue的条件渲染指令(v-if和v-else)来根据打卡状态显示不同的文本。当用户点击打卡按钮时,会调用punch方法进行打卡逻辑的处理。我们使用localStorage来保存用户的上次打卡日期,并在下次打卡时进行比较。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值