<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HappyRocking的专栏]]></title><description><![CDATA[欢迎欢迎]]></description><link>https://blog.youkuaiyun.com/HappyRocking</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HappyRocking]]></copyright><item><title><![CDATA[三大决策树的比较——ID3、C4.5、CART]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/108237760</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/108237760</guid><author>HappyRocking</author><pubDate>Wed, 26 Aug 2020 18:04:51 +0800</pubDate><description><![CDATA[类型
ID3
C4.5
CART




解决问题
分类
分类
分类、回归


划分指标
信息增益
增益率
基尼指数


指标特点
会偏向可取值数目加多的属性
会偏向可取值数目较少的属性



划分规则
选择信息增益最大的属性
先找出信息增益高于平均水平的属性，再从中选择增益率最高的
选择划分后基尼指数最小的属性


优缺点
DI3会偏向可取值数目加多的属性ID3算法并未给出处理连续数据的方法ID3算法不能处理带有缺失值的数据集ID3算法只有树的生成, 所以容易过拟合
C4.5可以处理连续值C4.5...]]></description><category></category></item><item><title><![CDATA[python3 自定义比较器]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/106648245</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/106648245</guid><author>HappyRocking</author><pubDate>Tue, 09 Jun 2020 20:10:21 +0800</pubDate><description><![CDATA[python3 自带的排序函数 sort()、sorted() 等，可以自定义比较器，实现特殊需求，以下介绍3种常见方法。
比如现在有二维空间中的3个点，需要对它们进行排序，规则是：先按x坐标排序，如果相同，则按y坐标排序。
class Pos:
	"""
	坐标类
	"""
    def __init__(self, x = 0, y = 0):
        self.x = x
        self.y = y
         
    def __str__(self):
        ]]></description><category></category></item><item><title><![CDATA[Hive之grouping sets用法及grouping_id计算方法]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/106545559</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/106545559</guid><author>HappyRocking</author><pubDate>Thu, 04 Jun 2020 15:13:48 +0800</pubDate><description><![CDATA[grouping sets 用法
在Hive中，会出现对同一个数据表进行不同粒度的汇总，这时可以有两种方案：

用多个sql，对不同粒度使用不同的 group by 方法。
用1个sql，使用 grouping sets 方法一次性得到所有粒度的汇总。

以测试数据表 tmp_student 为例:
1、生成测试数据
在 hive 环境中创建临时表：
create table tmp.tmp_student
(
   name string,
   class int,
   sex string,
   ]]></description><category></category></item><item><title><![CDATA[Hive窗口函数之preceding and following]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/105369558</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/105369558</guid><author>HappyRocking</author><pubDate>Tue, 07 Apr 2020 18:33:29 +0800</pubDate><description><![CDATA[Hive窗口函数中，有一个功能是统计当前行之前或之后指定行作为一个聚合，关键字是 preceding 和 following，举例说明其使用方法。
一、加载测试数据
在 hive 环境中创建临时表：
create table tmp_student
(
   name           string,
   class          tinyint,
   cooperator_name  ...]]></description><category></category></item><item><title><![CDATA[Python——使用scipy求解带约束的最优化问题]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/92574229</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/92574229</guid><author>HappyRocking</author><pubDate>Mon, 17 Jun 2019 10:17:48 +0800</pubDate><description><![CDATA[我们要求解的最优化问题的形式如下：
min&nbsp;f(x)s.t.gi(x)&amp;gt;0,i=1,...,mhj(x)=0,j=1,...,n
\begin{aligned}
min \ f(x) \\
s.t.\quad g_i(x)&amp;amp; \gt 0, i = 1,...,m\\
\quad h_j(x)&amp;amp; = 0, j = 1,...,n
\end{al...]]></description><category></category></item><item><title><![CDATA[python中matplotlib画图中文乱码的解决方法]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/91491107</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/91491107</guid><author>HappyRocking</author><pubDate>Wed, 12 Jun 2019 10:34:03 +0800</pubDate><description><![CDATA[问题
在python中使用matplotlib画图，里面的中文会显示乱码方块。
解决方法
这是由于matplotlib默认使用的字体中不包含中文字符引起的，可以通过将中文字符加入到默认字体中解决。
前提：查找本地都有哪些中文字体
打开matplotlib字体，默认为C:\Users\用户名\.matplotlib，打开fontList.json，查找中文字体如simHei,song,kai等，分别...]]></description><category></category></item><item><title><![CDATA[Shell 语法——if else 详解]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/90476264</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/90476264</guid><author>HappyRocking</author><pubDate>Wed, 29 May 2019 17:37:16 +0800</pubDate><description><![CDATA[一、语法格式
shell 中的 if 语句的格式如下：
if 条件; then
  command1
else
  command2
fi

或者将 then 单独另起一行也可以，这时条件后面的 ; 便可以去掉：
if 条件
then
  command1
else
  command2
fi

google 规范推荐使用第一种，即：将 ; do , ; then 和 while , for , ...]]></description><category></category></item><item><title><![CDATA[shell中各种括号(),[],(()),[[]],{}等的作用大全及示例]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/90609554</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/90609554</guid><author>HappyRocking</author><pubDate>Wed, 29 May 2019 16:21:47 +0800</pubDate><description><![CDATA[一、()
1、命令组
连接多个命令组，用;隔开，最后一个命令后;可加可不加。括号中的命令会新开一个子shell顺序执行，所以里面的操作对括号外主进程无关。
a=0
(a=1;b=2;echo $a) # 子进程内输出a为1
echo $a # 主进程，输出a为0

2、命令替换
格式为 $(command)，相当于 `command`。shell遇到此格式，会先执行 command 命令，得到标准...]]></description><category></category></item><item><title><![CDATA[将本地文件导入到Hive表中（支持 TEXTFILE 、ORC 等存储格式）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/90178439</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/90178439</guid><author>HappyRocking</author><pubDate>Mon, 13 May 2019 18:24:49 +0800</pubDate><description><![CDATA[1、hive表格式为TEXTFILE
由于 TEXTFILE 格式没有对数据进行压缩，因此直接 load 即可。
假设本地有一个文件 test_person.txt，内容为：
Gong	24
Tian	23

想要将其导入到 TEXTFILE 格式的 tmp_test_person_txt 表内，步骤如下：
1.1、创建目标表，格式为 TEXTFILE
在 hive 命令行下，输入建表语句：
hi...]]></description><category></category></item><item><title><![CDATA[彻底删除git中的较大文件（包括历史提交记录）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/89313501</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/89313501</guid><author>HappyRocking</author><pubDate>Mon, 15 Apr 2019 15:47:31 +0800</pubDate><description><![CDATA[场景
适用于从一个git项目中，将体积较大的资源彻底从git中删除，包括历史提交记录。
如果仅仅在目录中删除一个文件是不够的，只要在提交记录中有这个文件，那么 .git 中就会有这个文件的信息。
用 filter-branch 可以强制修改提交信息，将某个文件的历史提交痕迹也抹去，就像从来没有过这个文件一样。
做法
0、确保本地仓库是最新版本。
1、在项目根目录下运行
git rev-list -...]]></description><category></category></item><item><title><![CDATA[Leetcode算法——72、编辑距离（edit distance）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/86491042</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/86491042</guid><author>HappyRocking</author><pubDate>Tue, 15 Jan 2019 13:18:21 +0800</pubDate><description><![CDATA[给定两个单词 word1 和 word2，找到将 word1 转化为 word2 所需的最少操作步数。（这个步数称为两个单词的编辑距离）
对一个单词可以执行以下三种操作：
1、插入一个字符
2、删除一个字符
3、替换一个字符
示例：
Example 1:
Input: word1 = &quot;horse&quot;, word2 = &quot;ros&quot;
Output: 3
Explanation: 
horse -&amp;gt...]]></description><category></category></item><item><title><![CDATA[Leetcode算法——71、简化路径（simplify path）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/86225410</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/86225410</guid><author>HappyRocking</author><pubDate>Thu, 10 Jan 2019 12:44:09 +0800</pubDate><description><![CDATA[给定一个文件的绝对路径（unix系统），将其简化。
在unix文件系统中，’.’ 表示当前目录，因此可以被忽略。’…’ 表示上一个目录，因此需要取消掉最后一层目录。
示例：
path = &quot;/home/&quot;, =&amp;gt; &quot;/home&quot;
path = &quot;/a/./b/../../c/&quot;, =&amp;gt; &quot;/c&quot;
path = &quot;/a/../../b/../c//.//&quot;, =&amp;gt; &q]]></description><category></category></item><item><title><![CDATA[Leetcode算法——70、爬楼梯（climbing stairs）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85768460</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85768460</guid><author>HappyRocking</author><pubDate>Fri, 04 Jan 2019 12:37:56 +0800</pubDate><description><![CDATA[你正在爬楼梯，共有 n 层台阶。
每次可以爬 1 层或 2 层。
问有多少种不重复的方法可以从楼梯底爬到楼梯顶。
思路
爬n层台阶，可以根据第一步的层数，将所有爬法分为两类：

第一步爬1层，然后继续爬剩下的n-1层
第一步爬2层，然后继续爬剩下的n-2层

这两种方法是互斥且完备的。
因此，n层的爬法 = (n-1) 层的爬法 + (n-2) 层的爬法。
即斐波那契数列。
python实现
de...]]></description><category></category></item><item><title><![CDATA[python语法——yield 使用解析]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85684510</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85684510</guid><author>HappyRocking</author><pubDate>Thu, 03 Jan 2019 11:33:56 +0800</pubDate><description><![CDATA[带有 yield 的函数是一种特殊函数，其返回的函数值是一个 generator（生成器）。
yield 示例
举例说明 yield 的用法：生成一个自增平方序列：
def square(n):
    for i in range(n):
        yield i*i # 将 i*i 放入到返回值的生成器序列中

if __name__==&quot;__main__&quot;:
    gen = squ...]]></description><category></category></item><item><title><![CDATA[Leetcode算法——69、sqrt(x)]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85609564</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85609564</guid><author>HappyRocking</author><pubDate>Wed, 02 Jan 2019 13:01:19 +0800</pubDate><description><![CDATA[完成函数 int sqrt(int x)。
计算并返回 x 的平方根，其中 x 是一个非负整数。
返回结果去掉小数，只保留整数。
示例：
Example 1:
Input: 4
Output: 2

Example 2:
Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since 
          ...]]></description><category></category></item><item><title><![CDATA[python报错——Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.4]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85604017</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85604017</guid><author>HappyRocking</author><pubDate>Wed, 02 Jan 2019 11:25:13 +0800</pubDate><description><![CDATA[今天 linux 运行 python 时报错：

Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.4.  CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7....]]></description><category></category></item><item><title><![CDATA[pip 切换镜像源]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85339193</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85339193</guid><author>HappyRocking</author><pubDate>Sat, 29 Dec 2018 15:14:19 +0800</pubDate><description><![CDATA[在安装python的包时，使用pip安装，但会出现 “https://pypi.python.org/simple/scipy/” 访问不了了或者速度慢的现象。
切换国内的镜像源，可以提高下载速度。
国内镜像源
http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustun...]]></description><category></category></item><item><title><![CDATA[Leetcode算法——68、文本对齐（text justification）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85337132</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85337132</guid><author>HappyRocking</author><pubDate>Sat, 29 Dec 2018 12:41:30 +0800</pubDate><description><![CDATA[给定一个单词序列和一个最大宽度maxWidth，将文本进行格式化，每一行的字符长度为maxWidth。
需要使用贪婪的方法来格式化：在每一行中放入尽可能多的单词。有必要的话，可以添加额外的空格’ '，来保证每行的长度严格等于maxWidth。
单词之间的空格要尽可能均分。如果一行中的空格数量不能被均分，则左边的空位要比右边的空位包含的空格数要多。
特殊规则：文本的最后一行，在单词之间只能出现一个空...]]></description><category></category></item><item><title><![CDATA[Leetcode算法——67、二进制数相加（add binary）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85320110</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85320110</guid><author>HappyRocking</author><pubDate>Fri, 28 Dec 2018 12:22:17 +0800</pubDate><description><![CDATA[给定两个二进制字符串，返回他们的和（也是一个二进制字符串）。
输入的字符串都是非空的，并且只包含1或0。
示例：
Example 1:
Input: a = &quot;11&quot;, b = &quot;1&quot;
Output: &quot;100&quot;

Example 2:
Input: a = &quot;1010&quot;, b = &quot;1011&quot;
Output: &quot;10101&quot;

思路
按照手算加法的步骤，从最低位开始，同位相加，并考虑是否]]></description><category></category></item><item><title><![CDATA[Leetcode算法——66、加1（plus one）]]></title><link>https://blog.youkuaiyun.com/HappyRocking/article/details/85305007</link><guid>https://blog.youkuaiyun.com/HappyRocking/article/details/85305007</guid><author>HappyRocking</author><pubDate>Thu, 27 Dec 2018 20:35:37 +0800</pubDate><description><![CDATA[给定一个非空数字序列，表示一个非负整数。
要求将这个整数加1。
序列中每个元素都是一个单独的数字，且最高位是数组的第一个元素。
最高位不是0，除非就是整个序列就只有一个0。
思路
按照手写加法的定义，从最低位开始加1，并计算每一位是否满10需要进1。
python实现
def plusOne(digits):
    &quot;&quot;&quot;
    :type digits: List[int]
    :rty...]]></description><category></category></item></channel></rss>