信息管理学院2018届飞跃手册

校友天地王开新 发表了文章 • 0 个评论 • 222 次浏览 • 1 天前 • 来自相关话题

拖了这么久终于做好了这个手册,希望对学弟学妹的申请有帮助。
 
感谢所有参与编写同学的付出,大家辛苦了!
 
希望明年19届留学的同学能将飞跃手册传承下去,为后面的同学提供最新的申请信息。
拖了这么久终于做好了这个手册,希望对学弟学妹的申请有帮助。
 
感谢所有参与编写同学的付出,大家辛苦了!
 
希望明年19届留学的同学能将飞跃手册传承下去,为后面的同学提供最新的申请信息。

海量数据处理资料分享

数据挖掘李新春 发表了文章 • 0 个评论 • 75 次浏览 • 2018-05-12 11:44 • 来自相关话题

在面试中可能会遇到“假如给你十几个亿的数据,如何利用有限的内存和时间进行排序,查找和统计一些统计指标等等”,在附件中的资料中,给出了十个方法,并结合了具体的例子进行解释,个人感觉还是挺好的一份资料,虽然细节不是很详细,但是可以作为一个系统地了解过程吧,感兴趣的同学可以查阅更详细的资料。
本文只是资料分享,下面的总结不是原创,方法和例子都来源于附件中文章。
文章中给出了十个海量数据处理的方法,分别是:
1、哈希分治
2、SimHash算法
3、外排序
4、MapReduce
5、多层划分
6、位图
7、布隆过滤器
8、Trie树
9、数据库
10、倒排索引
下面列举几个文章中提到的几个代表性面试问题:
Problem 1:
    有一个1G大小的文件,每一行是一个词,现在统计出现频次Top100的所有词,每个词不超过16字节,内存大小限制为1M。
Answer:
    采用Hash分治的思想。
    1)顺序读取文件每一行,按照Hash(word) % 5000计算,将每个词归为5000个小文件中的每一个,这样每个文件平均大小200K(如果有某个文件大于1M,可以对之进行二次Hash划分)。
    2)对每个小文件,利用Trie树或HashTable统计词和词频,利用堆排序返回前100个最高频词。
    3)合并,5000 * 100个词和词频,Trie树或HashTable进行合并,然后堆排序返回前100最高频词。
 
 
Problem2:
    给定a,b两个文件,每个文件有50亿个URL,每个URL占64字节,如何利用4G内存的计算机求出两个文件中相同的URL。
Answer:
   采用Hash分治。
   1)对a文件中每个URL,计算Hash(URL)00,变为1000个小文件;同样地,对于b文件也划分为1000个小文件。
   2)对ai和bi文件进行查找相同URL,1<=i<=1000。这一步可以利用先将ai里面的所有URL加入HashSet,然后对于bi中的每一个URL进行查找即可。
   3)合并1000个小结果,得到最终结果。
 
 
Problem3:
    搜索引擎中的网络爬虫会爬取大量网页,但是有许多网页是转载或抄袭的,因此高度相似,如何将这些近似重复的网页筛选出来呢?网页数量是上亿级别的。
Analysis:
    如果利用向量空间模型+文本相似度计算,那么时间复杂度是平方级别,并且计算余弦相似度特别耗费时间。
    如果利用Hash值,那么这只能挑选出那些完全一样的网页,而不能得到近似重复的网页集合。
    所以思想应该放在:容错性的Hash上,即SimHash算法。
    SimHash包括分词、Hash、加权、合并、降维操作。
Answer:
   文本相似度计算 + SimHash算法。
   1)对每个网页利用SimHash得到文档的Hash值,即01字符串。
   2)计算网页之间的Hamming距离,这里设置阈值,小于某个阈值即判别为重复。
   3)第2步还是需要计算凉凉网页间的Hamming距离,时间复杂度也比较大,文章给出了一种利用鸽巢原理和倒排索引的方法降低时间复杂度。
 
 
Problem4:
    文件中有上亿个电话号码,每个号码8位数字,如何快速找到不重复的所有电话号码。
Analysis:
    两两比较肯定是下下策略。
    利用HashSet思想可以通过。
    如果能利用位图BitMap的思想就更好了,内存空间更省。
Answer:
    1) 8位数字最大的是99 999 999,就开辟一个长度为100 000 000的字符串,作为01位图,空间大小为100 000 000/8 Bytes,即12.5M。
    2)对每个号码,假如是82 876 123,就将字符串第82 876 123处置为1;
    3)将最后字符串里面所有1对应的index输出即可。
More:
    如果电话号码为11位呢,那么需要的内存空间就是12.5G,此时可以利用电话号码的一些特性,比如第一位为1等等特性缩小为1.25G空间,但是还是很大。
    所以位图不是任何情况下都适用的,当数据集中数据量很大,且每个数据本身很小的时候,利用位图比较优。
    其实位图可以理解为计数排序的思想,这里提一下Hash分治的思想和基数排序、桶排序的思想比较相似。
 
 
Problem5:
    邮件供应商要解决的问题之一就是过滤垃圾邮件,那么每天可能需要处理上亿封邮件,如何快速高效地进行判别垃圾邮件呢?
Analysis:
    提到垃圾邮件,可能会想到机器学习里面的朴素贝叶斯。
    利用已有垃圾邮件,通过SimHash可以实现相似邮件查找,从而判断是否是垃圾邮件。
    这里利用布隆过滤器来实现,其主要思想也是利用了Hash思想,是对位图的扩展。
Answer:
    布隆过滤器,可以允许一定错误率(即错误分类),但是效率高且时间复杂度比较低。
 
 
上面就是我选取的5个比较有代表性的问题,涉及到了很多新知识,比如SimHash、布隆过滤器、位图、Trie树等等,除此之外还有外排序、MapReduce等没有列举。个人感觉,花费一上午时间阅读这篇文章并写一个小的博客来总结,获益匪浅。这里分享给大家,希望大家能学习到一些知识! 查看全部
在面试中可能会遇到“假如给你十几个亿的数据,如何利用有限的内存和时间进行排序,查找和统计一些统计指标等等”,在附件中的资料中,给出了十个方法,并结合了具体的例子进行解释,个人感觉还是挺好的一份资料,虽然细节不是很详细,但是可以作为一个系统地了解过程吧,感兴趣的同学可以查阅更详细的资料。
本文只是资料分享,下面的总结不是原创,方法和例子都来源于附件中文章。
文章中给出了十个海量数据处理的方法,分别是:
1、哈希分治
2、SimHash算法
3、外排序
4、MapReduce
5、多层划分
6、位图
7、布隆过滤器
8、Trie树
9、数据库
10、倒排索引
下面列举几个文章中提到的几个代表性面试问题:
Problem 1:
    有一个1G大小的文件,每一行是一个词,现在统计出现频次Top100的所有词,每个词不超过16字节,内存大小限制为1M。
Answer:
    采用Hash分治的思想。
    1)顺序读取文件每一行,按照Hash(word) % 5000计算,将每个词归为5000个小文件中的每一个,这样每个文件平均大小200K(如果有某个文件大于1M,可以对之进行二次Hash划分)。
    2)对每个小文件,利用Trie树或HashTable统计词和词频,利用堆排序返回前100个最高频词。
    3)合并,5000 * 100个词和词频,Trie树或HashTable进行合并,然后堆排序返回前100最高频词。
 
 
Problem2:
    给定a,b两个文件,每个文件有50亿个URL,每个URL占64字节,如何利用4G内存的计算机求出两个文件中相同的URL。
Answer:
   采用Hash分治。
   1)对a文件中每个URL,计算Hash(URL)00,变为1000个小文件;同样地,对于b文件也划分为1000个小文件。
   2)对ai和bi文件进行查找相同URL,1<=i<=1000。这一步可以利用先将ai里面的所有URL加入HashSet,然后对于bi中的每一个URL进行查找即可。
   3)合并1000个小结果,得到最终结果。
 
 
Problem3:
    搜索引擎中的网络爬虫会爬取大量网页,但是有许多网页是转载或抄袭的,因此高度相似,如何将这些近似重复的网页筛选出来呢?网页数量是上亿级别的。
Analysis:
    如果利用向量空间模型+文本相似度计算,那么时间复杂度是平方级别,并且计算余弦相似度特别耗费时间。
    如果利用Hash值,那么这只能挑选出那些完全一样的网页,而不能得到近似重复的网页集合。
    所以思想应该放在:容错性的Hash上,即SimHash算法。
    SimHash包括分词、Hash、加权、合并、降维操作。
Answer:
   文本相似度计算 + SimHash算法。
   1)对每个网页利用SimHash得到文档的Hash值,即01字符串。
   2)计算网页之间的Hamming距离,这里设置阈值,小于某个阈值即判别为重复。
   3)第2步还是需要计算凉凉网页间的Hamming距离,时间复杂度也比较大,文章给出了一种利用鸽巢原理和倒排索引的方法降低时间复杂度。
 
 
Problem4:
    文件中有上亿个电话号码,每个号码8位数字,如何快速找到不重复的所有电话号码。
Analysis:
    两两比较肯定是下下策略。
    利用HashSet思想可以通过。
    如果能利用位图BitMap的思想就更好了,内存空间更省。
Answer:
    1) 8位数字最大的是99 999 999,就开辟一个长度为100 000 000的字符串,作为01位图,空间大小为100 000 000/8 Bytes,即12.5M。
    2)对每个号码,假如是82 876 123,就将字符串第82 876 123处置为1;
    3)将最后字符串里面所有1对应的index输出即可。
More:
    如果电话号码为11位呢,那么需要的内存空间就是12.5G,此时可以利用电话号码的一些特性,比如第一位为1等等特性缩小为1.25G空间,但是还是很大。
    所以位图不是任何情况下都适用的,当数据集中数据量很大,且每个数据本身很小的时候,利用位图比较优。
    其实位图可以理解为计数排序的思想,这里提一下Hash分治的思想和基数排序、桶排序的思想比较相似。
 
 
Problem5:
    邮件供应商要解决的问题之一就是过滤垃圾邮件,那么每天可能需要处理上亿封邮件,如何快速高效地进行判别垃圾邮件呢?
Analysis:
    提到垃圾邮件,可能会想到机器学习里面的朴素贝叶斯。
    利用已有垃圾邮件,通过SimHash可以实现相似邮件查找,从而判断是否是垃圾邮件。
    这里利用布隆过滤器来实现,其主要思想也是利用了Hash思想,是对位图的扩展。
Answer:
    布隆过滤器,可以允许一定错误率(即错误分类),但是效率高且时间复杂度比较低。
 
 
上面就是我选取的5个比较有代表性的问题,涉及到了很多新知识,比如SimHash、布隆过滤器、位图、Trie树等等,除此之外还有外排序、MapReduce等没有列举。个人感觉,花费一上午时间阅读这篇文章并写一个小的博客来总结,获益匪浅。这里分享给大家,希望大家能学习到一些知识!

背包问题资料分享

编程与开发李新春 发表了文章 • 0 个评论 • 59 次浏览 • 2018-05-07 21:22 • 来自相关话题

最近在上工管的算法课,遇到了动态规划解决背包问题,所以网上搜了一下资料,有一份资料对九种背包问题进行了详细介绍,感觉是很好的资料,共16页,在这里分享出来,原创性属于作者本人,本文只是分享一下:
1.  01背包问题
     动态规划;空间复杂度;逆序遍历容量
2.  完全背包问题
     01背包问题化;二进制划分物品;顺序遍历容量
3.  多重背包问题
     01背包问题化;二进制划分物品
4.  混合三种背包问题
     分情况确定遍历顺序
5.  二维费用背包问题
     二维遍历
6.  分组背包问题
     每组物品只能取一个;依次遍历组,组里面遍历每个物品
7.  有依赖背包问题
     主件和所有附件一块组成一组,组内先01背包问题化;分组背包问题
8.  泛化物品
     每个物品是一个数组
9.  其余背包问题问法
     确定最优选择方案;确定所有方案;所有最优方案等等 查看全部
最近在上工管的算法课,遇到了动态规划解决背包问题,所以网上搜了一下资料,有一份资料对九种背包问题进行了详细介绍,感觉是很好的资料,共16页,在这里分享出来,原创性属于作者本人,本文只是分享一下:
1.  01背包问题
     动态规划;空间复杂度;逆序遍历容量
2.  完全背包问题
     01背包问题化;二进制划分物品;顺序遍历容量
3.  多重背包问题
     01背包问题化;二进制划分物品
4.  混合三种背包问题
     分情况确定遍历顺序
5.  二维费用背包问题
     二维遍历
6.  分组背包问题
     每组物品只能取一个;依次遍历组,组里面遍历每个物品
7.  有依赖背包问题
     主件和所有附件一块组成一组,组内先01背包问题化;分组背包问题
8.  泛化物品
     每个物品是一个数组
9.  其余背包问题问法
     确定最优选择方案;确定所有方案;所有最优方案等等

python3爬虫爬取pdf&解析pdf得到文本

编程与开发李新春 发表了文章 • 0 个评论 • 196 次浏览 • 2018-04-20 16:25 • 来自相关话题

    因为现在很多文献都是以pdf形式在网上挂着,所以笔者去网上搜取了一下如何利用python3下载pdf以及解析pdf得到文本呢?
   查了一下,发现下载pdf很简单,因为pdf资源可以通过urllib或request的get方法直接请求到,然后将得到的结果以"wb"的形式写入文件即可,后缀名改为pdf即可。具体见文件downloadpdf.py。
   解析pdf需要用到pdfminer包,安装很简单,使用“pip install pdfminer3k"即可,其作用就是将一篇pdf文档里面的文字提取出来(图片、表格还没去研究如何提取),然后得到文本,以后再处理pdf就方便了很多,但是有的时候得到的结果并不理想,仅供参考。 查看全部
    因为现在很多文献都是以pdf形式在网上挂着,所以笔者去网上搜取了一下如何利用python3下载pdf以及解析pdf得到文本呢?
   查了一下,发现下载pdf很简单,因为pdf资源可以通过urllib或request的get方法直接请求到,然后将得到的结果以"wb"的形式写入文件即可,后缀名改为pdf即可。具体见文件downloadpdf.py。
   解析pdf需要用到pdfminer包,安装很简单,使用“pip install pdfminer3k"即可,其作用就是将一篇pdf文档里面的文字提取出来(图片、表格还没去研究如何提取),然后得到文本,以后再处理pdf就方便了很多,但是有的时候得到的结果并不理想,仅供参考。

申请面经(持续更新,其实也不知道能更几次)

求职经验王开新 发表了文章 • 0 个评论 • 90 次浏览 • 2018-01-29 09:45 • 来自相关话题

waterloo:
 
彩票校之一,紧张地准备了几天。教授先blabla讲了她们组的工作,然后让我讲了一下暑研,就完了。。就完了。。没有“为什么读phd”,也没有讲文章环节,完全不按套路出牌啊。全程感觉自己没有看摄像头(即便是专门对着摄像头的时候),英语交流还好,就是害怕给教授留下了不想理她的印象。唉,凉凉。
 
NUS:
 
之前搜到了一个面经,很多问题都出现了,很有用:新国立ngs面经

我遇到的问题有这些:
1. 为啥读phd,为啥选ngs
2. 你看过教授列表吗?打算做什么方向
3. 你这个方向现有的技术有哪些?
4. 现有技术这么成熟,你有什么计划?(哪里成熟好嘛,捂脸)
5. 讲讲你之前的某个研究
6. 这个研究和你这个方向感觉没关系啊(强行扯出一点关系)
7. 你这个研究如何交叉学科?
8. 你还申了哪些学校,有没有收到offer(今早刚收到了mcgill)
9.  如果都收到offer,你把NUS rank到多少?
10. 问我还有啥问题

面试是4个人一起面的,从视频里看我好像被投影到了一面墙上 —_— 查看全部
waterloo:
 
彩票校之一,紧张地准备了几天。教授先blabla讲了她们组的工作,然后让我讲了一下暑研,就完了。。就完了。。没有“为什么读phd”,也没有讲文章环节,完全不按套路出牌啊。全程感觉自己没有看摄像头(即便是专门对着摄像头的时候),英语交流还好,就是害怕给教授留下了不想理她的印象。唉,凉凉。
 
NUS:
 
之前搜到了一个面经,很多问题都出现了,很有用:新国立ngs面经

我遇到的问题有这些:
1. 为啥读phd,为啥选ngs
2. 你看过教授列表吗?打算做什么方向
3. 你这个方向现有的技术有哪些?
4. 现有技术这么成熟,你有什么计划?(哪里成熟好嘛,捂脸)
5. 讲讲你之前的某个研究
6. 这个研究和你这个方向感觉没关系啊(强行扯出一点关系)
7. 你这个研究如何交叉学科?
8. 你还申了哪些学校,有没有收到offer(今早刚收到了mcgill)
9.  如果都收到offer,你把NUS rank到多少?
10. 问我还有啥问题

面试是4个人一起面的,从视频里看我好像被投影到了一面墙上 —_—

记信息素养协会及数据挖掘小组第一次分享会

兴趣小组李新春 发表了文章 • 0 个评论 • 143 次浏览 • 2017-10-24 23:20 • 来自相关话题

    随着十九大的召开,习大大号召产业升级,推动互联网,大数据,人工智能和实体经济深度融合。近期,平地一声雷,Nature发表了关于AlphaZero在无知状态下学习围棋并打败他的弟弟AlphaGo 的文章。人工智能,大数据在如今的学术界,工业界打得一片火热。与他们密切相关的信息素养协会的小伙伴们又怎么能落后于这股潮流呢?
    秉着给信息素养协会的伙伴们造福利的理念,10月15日,信息管理学院的李新春和韩韬同学来给同学们分享一些编程和算法的基础知识。
    分享会首先由李新春开始介绍python的基础知识,包括python的简介、安装,另外从python变量、运算符、基础语法、数据结构等进行展开介绍,同时给大家展示了一下python和C,Java的区别。由于分享时间只有半小时左右,所以只能给大家一个初步的认识,希望可以帮到那些对python尚不了解的同学。PPT见附件,里面有一些学习资源的链接。






    另外,为了适应不同层次同学的学习需要,以及小组“数据挖掘”为主的本质,李新春又给大家介绍了机器学习十大算法之一,无监督学习的KMeans,以及KMeans在图像分割中的应用,同时用python实现给大家进行了简单的展示。






    从python基础到机器学习,再到图像分割的具体应用,可以说是一个由浅入深的过程,希望大家可以从中学到一些知识。之外,可能有的同学对python, 对Kmeans都比较熟悉了,所以本次分享会进入第二阶段,由韩韬同学给大家分享爬虫的知识。
    韩韬首先给出了爬虫的基本框架,然后由南京大学小百合的网站出发,给大家展示了浏览器“查看元素”功能的强大之处,在网络爬虫的开发中,浏览器查看元素的作用很重要。此外,韩韬用python的requests库给大家抓取了一些网页,到此如何爬取网页内容已经介绍给大家了。然后,韩韬给大家分享了如何用正则表达式,css选择器来抽取相应的元素。最后,关于一些编码问题,韩韬也做了一些介绍,同时给了大家一些展示。可以说,本次爬虫的分享内容十分丰富,也非常实用,希望各位同学后续可以在网上找一些教程实战一下。






    分享会已经过去一周了,现在才发总结,是不是有点晚了呢?不晚,因为今天是10月24号,1024,仅代表数据挖掘兴趣小组全体成员向所有的程序员祝福,生日快乐。不不不,节日快乐!

   查看全部
    随着十九大的召开,习大大号召产业升级,推动互联网,大数据,人工智能和实体经济深度融合。近期,平地一声雷,Nature发表了关于AlphaZero在无知状态下学习围棋并打败他的弟弟AlphaGo 的文章。人工智能,大数据在如今的学术界,工业界打得一片火热。与他们密切相关的信息素养协会的小伙伴们又怎么能落后于这股潮流呢?
    秉着给信息素养协会的伙伴们造福利的理念,10月15日,信息管理学院的李新春和韩韬同学来给同学们分享一些编程和算法的基础知识。
    分享会首先由李新春开始介绍python的基础知识,包括python的简介、安装,另外从python变量、运算符、基础语法、数据结构等进行展开介绍,同时给大家展示了一下python和C,Java的区别。由于分享时间只有半小时左右,所以只能给大家一个初步的认识,希望可以帮到那些对python尚不了解的同学。PPT见附件,里面有一些学习资源的链接。

1.jpg


    另外,为了适应不同层次同学的学习需要,以及小组“数据挖掘”为主的本质,李新春又给大家介绍了机器学习十大算法之一,无监督学习的KMeans,以及KMeans在图像分割中的应用,同时用python实现给大家进行了简单的展示。

3.jpg


    从python基础到机器学习,再到图像分割的具体应用,可以说是一个由浅入深的过程,希望大家可以从中学到一些知识。之外,可能有的同学对python, 对Kmeans都比较熟悉了,所以本次分享会进入第二阶段,由韩韬同学给大家分享爬虫的知识。
    韩韬首先给出了爬虫的基本框架,然后由南京大学小百合的网站出发,给大家展示了浏览器“查看元素”功能的强大之处,在网络爬虫的开发中,浏览器查看元素的作用很重要。此外,韩韬用python的requests库给大家抓取了一些网页,到此如何爬取网页内容已经介绍给大家了。然后,韩韬给大家分享了如何用正则表达式,css选择器来抽取相应的元素。最后,关于一些编码问题,韩韬也做了一些介绍,同时给了大家一些展示。可以说,本次爬虫的分享内容十分丰富,也非常实用,希望各位同学后续可以在网上找一些教程实战一下。

2.jpg


    分享会已经过去一周了,现在才发总结,是不是有点晚了呢?不晚,因为今天是10月24号,1024,仅代表数据挖掘兴趣小组全体成员向所有的程序员祝福,生日快乐。不不不,节日快乐!

  

2017-2018上半学期第一次见面会

兴趣小组李新春 发表了文章 • 0 个评论 • 162 次浏览 • 2017-09-19 22:28 • 来自相关话题

    2017年9月17日晚19点,信息管理学院数据挖掘兴趣小组在院楼318教室举办了2017-2018年度上半学期的第一场见面会,小组见面会的场面用四个字来形容就是座无虚席。让我们来看看见面会都有些什么吧。
   





    首先,由李新春同学致欢迎辞,介绍数据挖掘兴趣小组的基本情况以及小组和信息素养协会之间的关系。小组第一次见面会的主要目的是给新成员们一个兴趣指引,所以李新春同学先介绍了一下什么是机器学习,并且利用Andrew Ng在Coursera上机器学习公开课里面的介绍视频给大家进行一个简单的展示(可惜的是现场视频没有播放出声音来,不过不要紧,PPT里面有链接)。接下来,介绍了机器学习可以用来干什么,包括自然语言处理、自动驾驶、推荐系统等等。再接着从算法、数据和深度三个方面进行展开,介绍了要学习哪些东西。最后给出了一大波学习资料,有公开课、论文、书籍等。
   
    接下来是三位小组“老”成员的分享,韩韬同学根据自己在前海征信“好信杯”大数据算法竞赛获奖的经历进行了分享,介绍了问题背景以及什么是迁移学习,并且展示了比赛过程中用到的算法,分享了比赛的心得等等。王开新同学则从工具这方面进行展开,给大家介绍了很多实用性的工具,包括stack overflow、github、kaggle等平台以及Python的numpy、scikit learn、keras等工具包。郜梦蕊同学则根据自己在小组内接近两年的经历和所学所得做了一个分享。
    可以说,三位成员分别从大数据竞赛、学习工具和小组心得三个方面展开,这将是非常具有实用性的,最起码小组新成员会通过这场见面会知道机器学习可以干什么以及我为什么学习机器学习。
   





    最后一个环节则是小组“老”成员与新成员面对面的沟通,以增加彼此间的了解。
    PPT资料在附件里面,里面有很多链接可以获得相关资料,大家可以下载一下。
 

  查看全部
    2017年9月17日晚19点,信息管理学院数据挖掘兴趣小组在院楼318教室举办了2017-2018年度上半学期的第一场见面会,小组见面会的场面用四个字来形容就是座无虚席。让我们来看看见面会都有些什么吧。
   
1.PNG


    首先,由李新春同学致欢迎辞,介绍数据挖掘兴趣小组的基本情况以及小组和信息素养协会之间的关系。小组第一次见面会的主要目的是给新成员们一个兴趣指引,所以李新春同学先介绍了一下什么是机器学习,并且利用Andrew Ng在Coursera上机器学习公开课里面的介绍视频给大家进行一个简单的展示(可惜的是现场视频没有播放出声音来,不过不要紧,PPT里面有链接)。接下来,介绍了机器学习可以用来干什么,包括自然语言处理、自动驾驶、推荐系统等等。再接着从算法、数据和深度三个方面进行展开,介绍了要学习哪些东西。最后给出了一大波学习资料,有公开课、论文、书籍等。
   
    接下来是三位小组“老”成员的分享,韩韬同学根据自己在前海征信“好信杯”大数据算法竞赛获奖的经历进行了分享,介绍了问题背景以及什么是迁移学习,并且展示了比赛过程中用到的算法,分享了比赛的心得等等。王开新同学则从工具这方面进行展开,给大家介绍了很多实用性的工具,包括stack overflow、github、kaggle等平台以及Python的numpy、scikit learn、keras等工具包。郜梦蕊同学则根据自己在小组内接近两年的经历和所学所得做了一个分享。
    可以说,三位成员分别从大数据竞赛、学习工具和小组心得三个方面展开,这将是非常具有实用性的,最起码小组新成员会通过这场见面会知道机器学习可以干什么以及我为什么学习机器学习。
   
2.PNG


    最后一个环节则是小组“老”成员与新成员面对面的沟通,以增加彼此间的了解。
    PPT资料在附件里面,里面有很多链接可以获得相关资料,大家可以下载一下。
 

 

LDA and CRF的资料,写得超级棒

数据挖掘李新春 发表了文章 • 0 个评论 • 160 次浏览 • 2017-09-06 14:56 • 来自相关话题

    近期看了一些自然语言处理方面的资料,就拿常用算法来说分为三大块。第一块基于词袋模型,不考虑序列性,其中代表模型有LSA,PLSA,LDA。第二块内容基于序列性质,也是一个大家族,包括HMM、MeMM、CRF。第三块内容基于深度学习,包括Word2Vector、SentenceEmbedding,以及其它很多利用深度网络来做翻译、聊天系统的资料。
    这里给出一个网盘链接,里面有两份资料。一份是大名鼎鼎的Rickjin(靳志辉)写得LDA数学八卦,内容循序渐进,重点是“科普”LDA的数学内容,之所以加引号是因为大牛眼里的科普对我们来说也很难,里面涉及了太多知识点,就只拿MCMC和Gibbs Sampling来说,这两个就很难弄明白。正因为其全面详细,才是一份入门好资料,全文52页,内有诸多“上帝的游戏”,有趣味性。结合这篇文章再加上上面给出的一些链接(主要是heinrich的Parameter Estimation for Text Analysis一文),可以对LDA有个深入的认识与了解。
    此外第二篇文章是Classical-Probabilistic-Models-and-Conditional-Random-Filelds。主要介绍了贝叶斯模型到隐马尔科夫模型,最大熵模型到条件随机场。其中一幅图把四者紧密联系起来,顿时觉得“一目了然”,加引号是因为这张图背后有太多太多东西。HMM与CRF里面涉及的三个问题,每个问题都涉及到大量数学公式,很难掌握。文章中有介绍。
    总之,LDA和CRF可以说是机器学习里面比较难的算法了,当然也是很重要的算法,掌握它们并非一朝一夕之功。将材料分享出来,是想多加探讨,以更深入了解。笔者这两篇文章都看过了,但是仍有很多不解之处,欢迎探讨。
 
附上链接 : 资料网盘http://pan.baidu.com/s/1pLRvUDP 查看全部
    近期看了一些自然语言处理方面的资料,就拿常用算法来说分为三大块。第一块基于词袋模型,不考虑序列性,其中代表模型有LSA,PLSA,LDA。第二块内容基于序列性质,也是一个大家族,包括HMM、MeMM、CRF。第三块内容基于深度学习,包括Word2Vector、SentenceEmbedding,以及其它很多利用深度网络来做翻译、聊天系统的资料。
    这里给出一个网盘链接,里面有两份资料。一份是大名鼎鼎的Rickjin(靳志辉)写得LDA数学八卦,内容循序渐进,重点是“科普”LDA的数学内容,之所以加引号是因为大牛眼里的科普对我们来说也很难,里面涉及了太多知识点,就只拿MCMC和Gibbs Sampling来说,这两个就很难弄明白。正因为其全面详细,才是一份入门好资料,全文52页,内有诸多“上帝的游戏”,有趣味性。结合这篇文章再加上上面给出的一些链接(主要是heinrich的Parameter Estimation for Text Analysis一文),可以对LDA有个深入的认识与了解。
    此外第二篇文章是Classical-Probabilistic-Models-and-Conditional-Random-Filelds。主要介绍了贝叶斯模型到隐马尔科夫模型,最大熵模型到条件随机场。其中一幅图把四者紧密联系起来,顿时觉得“一目了然”,加引号是因为这张图背后有太多太多东西。HMM与CRF里面涉及的三个问题,每个问题都涉及到大量数学公式,很难掌握。文章中有介绍。
    总之,LDA和CRF可以说是机器学习里面比较难的算法了,当然也是很重要的算法,掌握它们并非一朝一夕之功。将材料分享出来,是想多加探讨,以更深入了解。笔者这两篇文章都看过了,但是仍有很多不解之处,欢迎探讨。
 
附上链接 : 资料网盘http://pan.baidu.com/s/1pLRvUDP

韩韬带领H&M团队在前海征信“好信杯”大数据算法竞赛斩获学生团队冠军奖

数据挖掘郜梦蕊 发表了文章 • 0 个评论 • 328 次浏览 • 2017-06-30 13:56 • 来自相关话题

1.比赛概览
    作为平安旗下专业第三方商业征信机构,前海征信有着丰富的数据资源。本次赛事中主办方前海征信开放业务数据,设计国内首个迁移学习赛题:参赛选手需依据给定的4万条业务A数据及4千条业务B数据,建立业务B的信用评分模型。其中业务A为信用贷款, 其特征就是债务人无需提供抵押品,仅凭自己的信誉就能取得贷款,并以借款人信用程度作为还款保证的;业务B为现金贷,即发薪日贷款(payday loan),与一般的消费金融产品相比,现金贷主要具有以下五个特点:额度小、周期短、无抵押、流程快、利率高,这也是与其借贷门槛低的特征相适应的。由于业务A、B存在关联性,选手如何将业务A的知识迁移到业务B,以此增强业务B的信用评分模型,是本次比赛的重点。
    6月3日,历时近2个月的前海征信“好信杯”大数据算法大赛落下帷幕。本次大赛由前海征信主办,由科赛网承办。大赛吸引242支队伍共600多位选手参赛,选手们共提交145份模型作品、17份算法方案,最终 10支团队入围决赛。
    其中韩韬、刘伙玉组成的H&M团队在决赛中排名第二,荣获学生团队冠军奖,全体亚军的佳绩!
2.赛题回顾 
    自2006年Hinton等人提出“深度学习”概念至今,深度学习在海量数据的挖掘分析中发挥了巨大的价值。然而对于越来越多的任务来说,特定垂直领域的数据并不足以支持系统建构,而迁移学习正是克服这一限制的重要思路。
    微软全球资深副总裁Peter Lee博士在近期的采访中提出,如果所有的网络信息都成为机器学习系统的基础,那么系统就将通过迁移学习获得更个性化的信息,人工智能普及化将又迈出一大步。正是看准了迁移学习的巨大潜能,本次前海征信大数据算法赛事将赛题锁定在迁移学习方向,参赛选手需依据给定的4万条业务A数据及2千条业务B数据(均作脱敏处理),建立业务B的信用评分模型。
    在这篇专访中,队长韩韬将代表H&M团队,向大家展示他们解决本次迁移学习赛题的详细思路,并与大家分享他个人在数据分析领域学习过程中的心得体会。
3.团队介绍
    我们团队分工比较明确,贺敏做的是极限学习机ELM、韩东升做的是JDA概率适配,刘伙玉和肖聪在单模型调参和特征上进行探索,韩韬负责的是tradaboost以及最后的模型融合。




    接下来,我将从问题定义、特征工程、样本空间泛化、算法性能泛化、迁移模型介绍、模型融合和反思五方面来分享我们比赛的方法和经验。
4.问题定义
    首先阐述一下我们对迁移学习(Transfer Learning)问题的定义:
迁移学习或称归纳迁移、领域适配,是机器学习中的一个重要研究问题,其目标是将某个领域或任务上学习到的知识或模式应用到不同的但相关的领域或问题中。主要思想是从相关的辅助领域中迁移标注数据或知识结构、完成或改进目标领域或任务的学习效果。而通过本次赛题所给出的业务数据我们可以看出,A、B为相似信贷业务。A业务数据相对丰富,为源数据。B业务数据较少,为目标数据。





5.特征工程
    此次赛题的数据脱敏,因此特征工程部分相对粗糙。主要使用统计特征和一些特征选择的技巧,对空值填-1,连续值取对数再取整。在特征选择上简单采用了xgb的feature_importances的属性对特征进行评分,选取了约400维度特征。在特征这部分具体优化能做得到多少我们并没有再去尝试。










6.样本空间泛化
    Garbage in garbage out,我们首先从数据分布上进行调整。在群里也有人反应smote效果并不好,估计一个是因为smote本身是用KNN,从距离的角度对数据进行扰动,但是这份数据过于稀疏,且更多的是category型的变量,所以效果并不明显,但是我们还是保留了这个做法,因为后期会对数据再次进行过滤。在过滤数据时,原本数据集之间差异比较大,而且A_train比B_train大太多,所以tradaboost的权重调整基本没有什么效果。因此我们做了一些适当调整,对A_train更严格,丢掉的更多。





7.算法性能泛化
    调整样本权重和样本分布,降低Bias将B_test做伪标记,融合在训练数据中多模型投票,降低variance。










8.迁移模型介绍
    我们的想法是通过最小化边缘和条件分布显式降低两个不同但相关邻域之间差异。
    首先最小化边缘分布之间的距离,判别面就可以对进行更为准确地预测;其次最小化条件分布差异,将领域间与标注数据相关的判别结构更好得对应起来。










    上面两个ppt,我们是从特征的边缘概率分布上进行调整,算法如上可以看出边缘概率调整后近似一致。这种方法的实验效果在最右侧,可以看出使用的数据量越大,线上效果越好,但是限于计算能力,仅用了一半A_train数据。




    算法框架中我们规定A_train为源域,B_train为辅助域,B_test为目标域,源域数据有大量的前业务数据,并且有对应的标注。B_train为新业务数据,特点是数少。B_test为目前的业务数据,需要建模预测的数据。 
    这一部分是我们从模型角度进行迁移,极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法,利用迁移思想对此算法进行调整,利用损失函数中的B_train和B_test的修正神经网络的参数。
9.模型融合与反思
    模型融合:
    Tradaboost组合模型主要针对减小领域迁移过程出现的较大偏差问题而提出,利用Tradaboost来选择更合适的样本。
    概率适配模型是通过同时降低领域间的边缘分布和条件分布使得领域数据更加相似。
    极限迁移学习机模型主要侧重通过辅助域数据来调整模型参数,使得模型更加适用于目标领域。 
    总之,不同的模型侧重不同的角度,为了更全面的考虑问题,因此将不同的模型进行融合。
10.反思与总结:
    优势:
    逻辑思路与基础理论知识清晰扎实
    框架扩展性强,选择性广对模型要求低
    将不同的迁移学习思路所得模型进行融合,优势互补
    缺点:
    概率适配方法造成计算开销较大
    数据脱敏,特征工程部分做的相对粗糙
 
这是我们关于本次赛题的整体思路展示,希望能对大家解决类似问题有所帮助。
后面转载自科赛对韩韬的采访~
 
    小科:韩韬你好,首先祝贺你取得了这么好的成绩,据我所知这是国内第一次迁移类的赛题,在完成的过程中你觉得最大得难点在哪里?你和你的团队又是怎么去处理?
    韩韬:第一个是迁移辅助样本和目标域差距太大。盲目迁移太容易伤害模型,我们团队从样本、特征和模型,三个角度迁移多样化考虑。尽量使得融合模型差异性最化。其实遇到的一个很尴尬的问题就是不迁移的模型有时候反而表现比迁移更容易表好。但是,我们在做的时候,还是坚持从迁移的要求来。
第二个问题是数据脱敏。这对数据的分析和业务理解难度就很大了。很多团队都发现了有一些特征之间数据上表现出很强的关联性比如很多特征会出现批量的空缺。但是这个我们也没有办法去验证,只能做一些常用的特征工程,主要精力放在模型上。 
 
    小科: 这次现场决赛中,有没有其他选手的解题思路让你们觉得印象深刻值得学习的?
    韩韬:当然有啊,第一个当然是罗远飞啦。他答辩把我们绝杀了不过服气的,他在做模型的时候自己对数学的原理很清晰,他自己优化损失函数的那一手特别的惊艳。还有就是星合动力和龙樱他们吧,前者对数据哲学和业务理解讲的很多,后者模型简单实用。
 
    小科:我看本次比赛你们,包括很多其他队伍你们都选择了选择使用TrAdaBoost学习框架,你个人觉得TrAdaBoost和AdaBoost比区别在哪里?
    韩韬:我个人认为这两个本身就是针对不同任务的算法。虽然思想很相似。TrAdaboost会针对辅助样本做不同考虑,Adaboost没有这层考虑。如果用Adaboost会发现Atrain的比重会更占优势,毕竟大量的样本是a业务,但是这是和我们的目标是不一致的不过在应用TrAdaboost的时候也要根据实际问题调整,我觉得单纯调包的话上限不大。
 
    小科:你个人有没有什么好的有效学习方式可以和大家分享的?
    韩韬:第一个是学习上不要过分挑拣。现在网上课程资源很丰富。我在当一门课助教时,有很多人一直在问,什么书好?什么资料好?什么课好?我觉得过分问这些问题本身就是蛮浪费时间的。不过可能我目前水平有限吧,正处于野蛮生长的阶段,所以不用太挑。当然,到了更高阶的学习层次,就要斟酌了。
    综上所有,我觉得最重要的还是对基本原理的把握吧,不论做什么,都要能潜心看一看这个领域基础是什么,这一点我本身也要能坚持。我本身也很局限,跟大多数人的情景一样。并不是因为我们团队做出一些成绩所以说的话有价值。希望大家自行斟酌取舍啦。
 
 
  查看全部
  • 1.比赛概览

    作为平安旗下专业第三方商业征信机构,前海征信有着丰富的数据资源。本次赛事中主办方前海征信开放业务数据,设计国内首个迁移学习赛题:参赛选手需依据给定的4万条业务A数据及4千条业务B数据,建立业务B的信用评分模型。其中业务A为信用贷款, 其特征就是债务人无需提供抵押品,仅凭自己的信誉就能取得贷款,并以借款人信用程度作为还款保证的;业务B为现金贷,即发薪日贷款(payday loan),与一般的消费金融产品相比,现金贷主要具有以下五个特点:额度小、周期短、无抵押、流程快、利率高,这也是与其借贷门槛低的特征相适应的。由于业务A、B存在关联性,选手如何将业务A的知识迁移到业务B,以此增强业务B的信用评分模型,是本次比赛的重点。
    6月3日,历时近2个月的前海征信“好信杯”大数据算法大赛落下帷幕。本次大赛由前海征信主办,由科赛网承办。大赛吸引242支队伍共600多位选手参赛,选手们共提交145份模型作品、17份算法方案,最终 10支团队入围决赛。
    其中韩韬、刘伙玉组成的H&M团队在决赛中排名第二,荣获学生团队冠军奖,全体亚军的佳绩!
  • 2.赛题回顾 

    自2006年Hinton等人提出“深度学习”概念至今,深度学习在海量数据的挖掘分析中发挥了巨大的价值。然而对于越来越多的任务来说,特定垂直领域的数据并不足以支持系统建构,而迁移学习正是克服这一限制的重要思路。
    微软全球资深副总裁Peter Lee博士在近期的采访中提出,如果所有的网络信息都成为机器学习系统的基础,那么系统就将通过迁移学习获得更个性化的信息,人工智能普及化将又迈出一大步。正是看准了迁移学习的巨大潜能,本次前海征信大数据算法赛事将赛题锁定在迁移学习方向,参赛选手需依据给定的4万条业务A数据及2千条业务B数据(均作脱敏处理),建立业务B的信用评分模型。
    在这篇专访中,队长韩韬将代表H&M团队,向大家展示他们解决本次迁移学习赛题的详细思路,并与大家分享他个人在数据分析领域学习过程中的心得体会。
  • 3.团队介绍

    我们团队分工比较明确,贺敏做的是极限学习机ELM、韩东升做的是JDA概率适配,刘伙玉和肖聪在单模型调参和特征上进行探索,韩韬负责的是tradaboost以及最后的模型融合。

1团队介绍.jpg
    接下来,我将从问题定义、特征工程、样本空间泛化、算法性能泛化、迁移模型介绍、模型融合和反思五方面来分享我们比赛的方法和经验。
  • 4.问题定义

    首先阐述一下我们对迁移学习(Transfer Learning)问题的定义:
迁移学习或称归纳迁移、领域适配,是机器学习中的一个重要研究问题,其目标是将某个领域或任务上学习到的知识或模式应用到不同的但相关的领域或问题中。主要思想是从相关的辅助领域中迁移标注数据或知识结构、完成或改进目标领域或任务的学习效果。而通过本次赛题所给出的业务数据我们可以看出,A、B为相似信贷业务。A业务数据相对丰富,为源数据。B业务数据较少,为目标数据。

2.问题定义_.jpg

  • 5.特征工程

    此次赛题的数据脱敏,因此特征工程部分相对粗糙。主要使用统计特征和一些特征选择的技巧,对空值填-1,连续值取对数再取整。在特征选择上简单采用了xgb的feature_importances的属性对特征进行评分,选取了约400维度特征。在特征这部分具体优化能做得到多少我们并没有再去尝试。

特征工程1.jpg


特征工程2.jpg

  • 6.样本空间泛化

    Garbage in garbage out,我们首先从数据分布上进行调整。在群里也有人反应smote效果并不好,估计一个是因为smote本身是用KNN,从距离的角度对数据进行扰动,但是这份数据过于稀疏,且更多的是category型的变量,所以效果并不明显,但是我们还是保留了这个做法,因为后期会对数据再次进行过滤。在过滤数据时,原本数据集之间差异比较大,而且A_train比B_train大太多,所以tradaboost的权重调整基本没有什么效果。因此我们做了一些适当调整,对A_train更严格,丢掉的更多。

样本空间泛化.jpg

  • 7.算法性能泛化

    调整样本权重和样本分布,降低Bias将B_test做伪标记,融合在训练数据中多模型投票,降低variance。

算法性能泛化1.jpg


算法性能泛化2.jpg

  • 8.迁移模型介绍

    我们的想法是通过最小化边缘和条件分布显式降低两个不同但相关邻域之间差异。
    首先最小化边缘分布之间的距离,判别面就可以对进行更为准确地预测;其次最小化条件分布差异,将领域间与标注数据相关的判别结构更好得对应起来。

迁移模型介绍1.jpg


迁移模型介绍2.jpg

    上面两个ppt,我们是从特征的边缘概率分布上进行调整,算法如上可以看出边缘概率调整后近似一致。这种方法的实验效果在最右侧,可以看出使用的数据量越大,线上效果越好,但是限于计算能力,仅用了一半A_train数据。

迁移模型介绍3.jpg
    算法框架中我们规定A_train为源域,B_train为辅助域,B_test为目标域,源域数据有大量的前业务数据,并且有对应的标注。B_train为新业务数据,特点是数少。B_test为目前的业务数据,需要建模预测的数据。 
    这一部分是我们从模型角度进行迁移,极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法,利用迁移思想对此算法进行调整,利用损失函数中的B_train和B_test的修正神经网络的参数。
  • 9.模型融合与反思

    模型融合:
    Tradaboost组合模型主要针对减小领域迁移过程出现的较大偏差问题而提出,利用Tradaboost来选择更合适的样本。
    概率适配模型是通过同时降低领域间的边缘分布和条件分布使得领域数据更加相似。
    极限迁移学习机模型主要侧重通过辅助域数据来调整模型参数,使得模型更加适用于目标领域。 
    总之,不同的模型侧重不同的角度,为了更全面的考虑问题,因此将不同的模型进行融合。
  • 10.反思与总结:

    优势:
    逻辑思路与基础理论知识清晰扎实
    框架扩展性强,选择性广对模型要求低
    将不同的迁移学习思路所得模型进行融合,优势互补
    缺点:
    概率适配方法造成计算开销较大
    数据脱敏,特征工程部分做的相对粗糙
 
这是我们关于本次赛题的整体思路展示,希望能对大家解决类似问题有所帮助。
  • 后面转载自科赛对韩韬的采访~

 
    小科:韩韬你好,首先祝贺你取得了这么好的成绩,据我所知这是国内第一次迁移类的赛题,在完成的过程中你觉得最大得难点在哪里?你和你的团队又是怎么去处理?
    韩韬:第一个是迁移辅助样本和目标域差距太大。盲目迁移太容易伤害模型,我们团队从样本、特征和模型,三个角度迁移多样化考虑。尽量使得融合模型差异性最化。其实遇到的一个很尴尬的问题就是不迁移的模型有时候反而表现比迁移更容易表好。但是,我们在做的时候,还是坚持从迁移的要求来。
第二个问题是数据脱敏。这对数据的分析和业务理解难度就很大了。很多团队都发现了有一些特征之间数据上表现出很强的关联性比如很多特征会出现批量的空缺。但是这个我们也没有办法去验证,只能做一些常用的特征工程,主要精力放在模型上。 
 
    小科: 这次现场决赛中,有没有其他选手的解题思路让你们觉得印象深刻值得学习的?
    韩韬:当然有啊,第一个当然是罗远飞啦。他答辩把我们绝杀了不过服气的,他在做模型的时候自己对数学的原理很清晰,他自己优化损失函数的那一手特别的惊艳。还有就是星合动力和龙樱他们吧,前者对数据哲学和业务理解讲的很多,后者模型简单实用。
 
    小科:我看本次比赛你们,包括很多其他队伍你们都选择了选择使用TrAdaBoost学习框架,你个人觉得TrAdaBoost和AdaBoost比区别在哪里?
    韩韬:我个人认为这两个本身就是针对不同任务的算法。虽然思想很相似。TrAdaboost会针对辅助样本做不同考虑,Adaboost没有这层考虑。如果用Adaboost会发现Atrain的比重会更占优势,毕竟大量的样本是a业务,但是这是和我们的目标是不一致的不过在应用TrAdaboost的时候也要根据实际问题调整,我觉得单纯调包的话上限不大。
 
    小科:你个人有没有什么好的有效学习方式可以和大家分享的?
    韩韬:第一个是学习上不要过分挑拣。现在网上课程资源很丰富。我在当一门课助教时,有很多人一直在问,什么书好?什么资料好?什么课好?我觉得过分问这些问题本身就是蛮浪费时间的。不过可能我目前水平有限吧,正处于野蛮生长的阶段,所以不用太挑。当然,到了更高阶的学习层次,就要斟酌了。
    综上所有,我觉得最重要的还是对基本原理的把握吧,不论做什么,都要能潜心看一看这个领域基础是什么,这一点我本身也要能坚持。我本身也很局限,跟大多数人的情景一样。并不是因为我们团队做出一些成绩所以说的话有价值。希望大家自行斟酌取舍啦。
 
 
 

矩阵的几个疑难点

数据挖掘李新春 发表了文章 • 0 个评论 • 146 次浏览 • 2017-06-13 23:18 • 来自相关话题

     临近期末,总结自己这个学期学到的东西,感觉很多时间还是花费在了矩阵论、概率统计和最优化方法等数学方法上,所以应该好好做个总结,否则过一段时间就忘了。以后忘记时再来翻翻看。这是对矩阵这一块最后一篇文章了,比较杂,也比较充实。不过一个学期下来,感觉对Latex的确熟悉了很多,之前也有试过cmdmarkdown,感觉还是先用Latex吧,以后用到贴代码的文章再去用cmdmarkdown。
    下面两端是文章的导言,这里贴出来。
    在机器学习的理论推导中,几乎处处离不开矩阵和向量。之前已经总结了矩阵的奇异值分解和矩阵求导等公式,现在来整理一下自己在学习过程中认为比较有趣的,同时也是很重要的几个疑难点。分别是谱分解、范数、谱半径、条件数、广义特征值、矩阵直积、广义逆矩阵和矩阵分解。
    本文涉及很多公式定理,大多数参考自文献《矩阵论》chap[8],广义逆处参考《非线性最优化理论与方法》chap[8]。本文之所以大费周章地将公式定理从书中摘录下来,原因有二,一是可以当做一个整理思路的过程,如何把矩阵论的知识贯穿起来并和机器学习里面的知识挂钩,这是一个锻炼的过程;同时,将重要的公式自己敲一遍,可以加深印象,增强对里面知识点的理解。
    下面是文档截图。










  查看全部
     临近期末,总结自己这个学期学到的东西,感觉很多时间还是花费在了矩阵论、概率统计和最优化方法等数学方法上,所以应该好好做个总结,否则过一段时间就忘了。以后忘记时再来翻翻看。这是对矩阵这一块最后一篇文章了,比较杂,也比较充实。不过一个学期下来,感觉对Latex的确熟悉了很多,之前也有试过cmdmarkdown,感觉还是先用Latex吧,以后用到贴代码的文章再去用cmdmarkdown。
    下面两端是文章的导言,这里贴出来。
    在机器学习的理论推导中,几乎处处离不开矩阵和向量。之前已经总结了矩阵的奇异值分解和矩阵求导等公式,现在来整理一下自己在学习过程中认为比较有趣的,同时也是很重要的几个疑难点。分别是谱分解、范数、谱半径、条件数、广义特征值、矩阵直积、广义逆矩阵和矩阵分解。
    本文涉及很多公式定理,大多数参考自文献《矩阵论》chap[8],广义逆处参考《非线性最优化理论与方法》chap[8]。本文之所以大费周章地将公式定理从书中摘录下来,原因有二,一是可以当做一个整理思路的过程,如何把矩阵论的知识贯穿起来并和机器学习里面的知识挂钩,这是一个锻炼的过程;同时,将重要的公式自己敲一遍,可以加深印象,增强对里面知识点的理解。
    下面是文档截图。

jvzhen1.png


jvzhen2.png