笔记|统计学习方法:决策树(二)
决策树的剪枝
由于决策树的生成算法是递归实现的,所以对已知数据的分类十分准确,但对未知数据的预测就不那么准确,就产生了过拟合的现象。 所以就产生了一种将已生成的树进行简化的过程,称为:“剪枝”。
由于决策树的生成算法是递归实现的,所以对已知数据的分类十分准确,但对未知数据的预测就不那么准确,就产生了过拟合的现象。 所以就产生了一种将已生成的树进行简化的过程,称为:“剪枝”。
决策树就是一棵树。
-Java语法和C++很接近,却没有C++中一些少使用、难理解的特性,比如:操作符重载、多继承、自动的强制类型转换。尤其是Java不使用指针,而是使用引用,并提供了自动分配和回收的内存空间,不需要为内存管理而担忧。
Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
k近邻算法(k-NN)是一种基本分类与回归方法,它有三个基本要素,本文将介绍k近邻算法的模型与kd树。
假设一定高度的人以一定的角度抛出一铅球求该铅球的最远射程
1 | (由于我的markdown文件是使用VSC写的,在此顺便记录一下markdown语法) |
首先了解一个概念:版本控制,简单来说就是如果你做文案工作,每次提交之后,你的领导会让你修改,一篇稿子可能修改十几次,但是最后定稿的很可能不是最新修改的那一稿,所以就需要有个版本控制的方法,可以回溯到你所修改的任何一版,并且可以拿出来使用。
目前来说,版本控制主要分为:集中式版本控制(Centralized Version Control Systems,简称 CVCS)和分布式版本控制,(Distributed Version Control System,简称 DVCS)。
集中式版本控制类似于中央集权,多个终端与一个服务器进行交互,缺点明显,如果服务器损毁,则所有终端都不能拿到最新版本。
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
下图就是分布式版本控制系统的图解:
想更多的了解这两者的优缺点,请点击这里
Github是一个面向开源的私有软件托管平台,因为只支持Git作为唯一的版本库格式进行托管,所以叫Github。它于2008年4月10日正式上线,它的开发者也是linux之父:“林纳斯·本纳第克特·托瓦兹”,作为一个分布式的版本控制系统,Github的功能除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,在 GitHub 上托管的版本数量非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。Github的仓库是他独有的特征,你大可以理解为一个无限容量且没有传输速度限制的网上云盘,但是这个云盘是可以设置公共与私密空间的,在这个开源的时代,你可以通过这个平台看到世界上许多其他大佬的程序作品,并且学习他们的编程思想,而且这很容易获得。