特点: 是一个二叉树,元素可以重复利用,可以做回归也可以做分类,分类用最小二乘法,即误差平方和最小 切割方法: 对于可量化的x来说: 切割点通常为两个x的平均值 左右两部分分别取均值,再评判以哪个分割点的误差平方和最小,即第一层根节点为此点 以此为规则,往下迭代,构建出回归树 对于不可量化的x来说: x无法去均值.直接以特征属性割分,再计算两个区域的均值,再寻找误差平方和最小的切割点 举个栗子: CART回归树的构建: 优点: 易于解释 处理类别特征,其他的技术往往要求数据属性的单一 延展到多分…
这一章你将会学会如何实现和使用链表这种动态的数据结构,这意味着我们可以从中任意添加或移除项,它会按需进行扩张. 本章内容 链表数据结构 向链表添加元素 从链表移除元素 使用 LinkedList 类 双向链表 循环链表 第五章 链表 链表数据结构 要存储多个元素,数组(或列表)可能是最常见的数据结构了.然后这种数据结构有一个缺点:数组的大小是固定的,从数组的起点或中间插入或移除项的成本有点高,因为需要移动元素. 链表存储有序的元素集合,但不同于数组,链表中的元素在内存并不是连续放置的.每个元素由…
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(美国国旗排序) ● 美国国旗排序 package package01; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Stack; public class class01 { private static final int BITS_PER_BYTE = 8;…
▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 package package01; import edu.princeton.cs.algs4.BinaryStdIn; import edu.princeton.cs.algs4.BinaryStdOut import edu.princeton.cs.algs4.Alphabet; public c…
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串的二进制表示.十六进制表示.图形表示 ● 二进制表示 package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.BinaryStdIn; public class class01 { private class01() {} public static void main(String[] args) { int bitPer…
▶ 书中第五章部分程序,包括在加上自己补充的代码,非确定性有穷自动机(NFA),grep 命令(利用 NFA 匹配) ● 非确定性有穷自动机(NFA) package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Bag; import edu.princeton.cs.algs4.Stack; import edu.princeton.cs.algs4.Digraph; import…
▶ 书中第五章部分程序,包括在加上自己补充的代码,Knuth-Morris-Pratt 无回溯匹配,Boyer - Moore 无回溯匹配,Rabin - Karp 指纹匹配 ● Knuth-Morris-Pratt 无回溯匹配 package package01; import edu.princeton.cs.algs4.StdOut; public class class01 { private final int R; // 字符集基数 private int[][] dfa; // 回…
▶ 书中第五章部分程序,包括在加上自己补充的代码,Trie 树类,Trie 集合,三值搜索树(Ternary Search Trie) ● Trie 树类 package package01; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Queue; public class class01<Value> { private st…
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(计数 + 插排),(原地排序),(三路快排,与前面的三路归并排序相同) ● 计数 + 插排 package package01; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class class01 { private static final int BITS_PER_BYTE = 8; private…
▶ 书中第五章部分程序,包括在加上自己补充的代码,字母表类,字符串低位优先排序(桶排) ● 字母表类 package package01; import edu.princeton.cs.algs4.StdOut; public class class01 { public static final class01 BINARY = new class01("01"); public static final class01 OCTAL = new class01("0123…