第一周学习

课堂学习

算法

  1. 算法设计的目标:正确性、可使用性、可读性、健壮性、高效率与低存储量需求例
  2. 算法的特征:有限性、确定性、可行性、输入性、输出性例
  3. 在C语言中调用函数时只有从实参到形参的单向值传递;在C语言中可以用传指针方式来实现形参的回传。(C++中增加了引用型参数的概念,引用型参数名前加上&)
  4. 时间复杂度:一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,算法的运行时间取决于两者的综合效果。
  • f(n)=O(g(n))(读作“f(n)是g(n)的大O”),即g(n)为f(n)的上界。这个上界的阶越低,结果就越有价值。
  • f(n)= Ω(g(n))(读作“f(n)是g(n)的大Ω”),即g(n)为f(n)的下界。这个下界的阶越高,结果就越有价值。
  • f(n)= θ(g(n))(读作“f(n)是g(n)的大θ”),即g(n)与f(n)的同阶。
  1. 递归算法的时间复杂度计算是采用一种分而治之的方法,把一个“大问题”分解为若干个相似的“小问题”来求解。例1例1例2例2
  2. 算法空间复杂度:一个算法的存储量包括形参所占空间和临时变量所占空间。在对算法进行存储空间分析时,只考察临时变量所占空间。例

为什么算法占用的空间只考虑临时空间,而不必考虑形参的空间呢?
这是因为形参的空间会在调用该算法的算法中考虑。

  1. 算法设计工具:STL,STL主要由container(容器)、algorithm(算法)和iterator(迭代器)三大部分构成。

使用STL时必须将下面的语句插入到源代码文件开头:
using namespace std;

  1. STL算法是用来操作容器中数据的模板函数,STL提供了大约100个实现算法的模版函数。STL算法对常用算法进行了总结。
  2. STL迭代器用于访问容器中的数据对象。每个容器都有自己的迭代器,只有容器自己才知道如何访问自己的元素。常用迭代器迭代器运算
  3. 常用的STL容器:顺序容器、关联容器、适配器容器

顺序容器(元素在容器中的位置同元素的值无关,即容器不是排序的)有以下三种:可变长动态数组 vector、双端队列 deque、双向链表 list。

  • vectorvector容器的定义
    vector的成员函数vector的成员函数
  • string(string是一个保存字符序列的容器,所有元素为字符类型,类似vector)string容器的创建string成员函数string成员函数

部分参考链接

统计学习方法----决策树

决策树模型与学习

  1. 决策树是一种基本的分类与回归方法,是一种归纳法,由结点和有向边组成。结点有两种类型:内部结点⚪和叶结点▢,内部结点表示一个特征或属性,叶结点表示一个类。
  2. 决策树学习的本质是从训练数据集种归纳出一组分类规则,其要求是与训练数据矛盾较小且具有很好的泛化能力(即对训练数据的拟合能力和对未知数据的预测能力)。

特征选择

1.特征选择的准则是信息增益或信息增益比

  • 信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。

特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即
g(D,A)=H(D)-H(D|A)
信息增益算法
经典例题经典例题

  • 信息增益比:解决了信息增益偏向于选择取值较多的特征的问题

特征A对训练数据集D的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比,即
gR(D,A)=g(D,A) / HA(D)

决策树的生成

  1. ID3算法ID3
  2. C4.5算法C4.5

信息增益生成决策树以及ID3算法代码参考代码在这

决策树的剪枝

  1. 预剪枝:生成过程种,对每个结点划分前进行估计,若当前结点的划分不能提升泛化能力,则停止划分,记当前结点为叶结点。
  2. 后剪枝:生成一颗完整的决策树之后,自下而上的对内部结点考察,若此内部结点变为叶结点可以提升泛化能力,则做此替换。
  • 降低错误剪枝(REP)
  • 悲观错误剪枝(PEP)(该方法是自上而下的)
  • 最小误差剪枝(MEP)
  • 基于错误的剪枝(EBP)
  • 代价-复杂度剪枝(CCP)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值