@evilking
2017-11-13T22:54:56.000000Z
字数 3645
阅读 1272
杂谈
本系列课程主要讲解下面几个模块:
R基础
我们学算法、写模型,最终都是为了解决项目中的实际问题,而一个算法的落地,需要编程语言的支持。这我推荐 R 语言,因为它简洁,往往一小段代码就能实现复杂的功能,它被广大统计学者们所喜爱;市面上也有很多人选择 python,我觉得它的思考模式更偏向于程序式的思维,因而被很多程序员喜爱;语言无关好坏,能快速的解决问题才是王道,作为初学者,学习简洁的 R 语言更合适一点,可以将精力更多的反正算法模型上,而不是编程上。
数学基础
数据挖掘相对来说数学味道会浓厚一点,所以必要的数学基础知识还是要补一下,比如概率、统计、线性代数、导数等等.
回归分析
说白了,机器学习无非是为了分类或拟合,回归分析篇主要讲多元线性回归和多元非线性回归,可以算是机器学习的基础,而且机器学习中很多的基础原理也需要回归分析,因为往往我们很难去解决复杂的问题,通常是将复杂的问题分解为简单的问题,再去一个个解决,比如非线性问题转换为线性问题。而且最重要的一点是,笔者希望通过回归分析中的一些数学推导过程来培训读者的数学思维,这样在逐步深入学习其他复杂模型时,能够从专业的角度去读懂算法背后的原理和设计思想.
可能会穿插着讲一些时间序列分析的模型,看时间安排.
机器学习
这里是本系列的重点内容了,几种常用的算法都讲到,比如决策树、随机森林、集成学习、聚类、SVM、HMM、CRF、EM、遗传算法、蚁群算法 等等,这些算法涵盖了绝大部分的应用场景需要的模型,在此基础上读者再去系统的看一本相应的书籍,会对机器学习整个系统有更深的理解。
其中每种算法会系统的讲一遍,由浅入深,从算法过程到数学推导,再到 R语言实现,让读者能真正的理解一个算法.
文本挖掘
目前市面上大部分需要处理的数据都是图像或文本,所以本篇会重点讲解文本挖掘中的一些常用算法,如 PageRank及与之类似的其他一些排序算法、文本去重、文本相似度计算、自然语言处理等内容.一样的对每种算法都能让读者系统而深入的理解.
其中自然语言处理这块,笔者主要关注在中文分词、命名实体识别、情感分析等部分,会分别讲解一下业界比较通用的解决算法(这里可能涉及到概率统计,深度学习等领域).
如果时间允许,笔者会讲一些图像识别的基础知识,以验证码识别为案例讲解下图像处理的整个过程.
深度学习
预计会讲 CNN、RNN、LSTM 这三种常用的深度学习算法,到时候看具体的时间了.
R 语言绘图
分析的结果往往需要通过图形的方式来展现,所以最后笔者会讲如何用 R 语言来绘制出绚丽的分析结果图.
每天按 7小时算,早上 9:30 ~ 11:30,中午 15:00 ~ 18:00,晚上 20:00 ~ 22:00
实现大小周轮流,大周表示周末两天都安排讲课,小周表示周日安排讲课、周六晚上安排免费两小时答疑
价格每小时 30元,所以要求学员最好课下先预习以提升效率,节省金钱.
R 基础部分预计讲 4 天:
第一天
R程序安装,向量,矩阵与数组
第二天
列表,数据框,因子
第三天
程序控制,函数,面向对象编程
第四天
数学运算,字符串,基础绘图,综合案例实践
这一部分主要是程序演示,时间应该可以压缩,如果提前预习的话,效率会快很多.
数学基础部分预计 2 天.
主要是回顾一下概率统计的相关基础知识,线性代数中矩阵操作的相关知识,以及高等代数中导数、偏导、微积分等相关基础知识.
回归分析部分预计讲 5 天:
第一天
一元线性回归,多元线性回归
这里除了讲线性回归的原理外,更主要的是讲推导,方便培养数学思维.
第二天
异方差性,自相关性
这里主要是有一些统计检验的知识,需要一些概率统计方面的基础
第三天
异常值和强影响点,自变量的选取与逐步回归
这几个知识属于对数据的处理,不管是在回归分析、时间序列分析,还是在机器学习中都需要用到,因为它直接决定了你的数据质量的好坏,影响模型效果.
第四天
多重共线性,非线性回归
稍微讲一些多重共线性,因为它与前面的变量选取有关;非线性回归主要讲多元多项式回归和逻辑回归,逻辑回归在机器学习中经常用到.
第五天
主要以案例实践为主,穿插着复习前面讲的各个知识点.
其中如果有时间还会讲解下时间序列的几个重要的模型,比如 ARMA系列模型.
机器学习预计每天能将一个完整的模型,预计 10 天:
以下每个模型都会有对应的 R 语言程序实例演示如何使用
第一天
决策树,随机森林
因为随机森林是多棵决策树组合而成,有重叠的地方;随机森林其中重点会讲下如何处理非平衡数据集.
第二天
AdaBoost提升算法
先回讲解什么是集成学习,然后逐步讲解 AdaBoost提升算法原理及推导过程,最后用一个小案例来实现AdaBoost算法.
第三天
GBDT(梯度提升决策树)
另一种提升算法,这种算法目前应用非常广泛,我们会详细讲解该算法的每一个过程,包括推导原理.
第四天
k-mean 聚类
会讲一些聚类的方法,比如按距离距离,按密度距离等等;在重点讲下如何改进聚类算法,因为类别数需要人为指定,在应用中往往需要动态的去设置类别数.
第五天
SVM,拉格朗日乘子法
这里详细讲 SVM 分类的算法原理,以及推导过程,包括其中用到的 KKT条件,会在拉格朗日乘子法中详细讲解,同样包括 KKT条件的推导过程.
第六天
EM
这之后就进入到概率图模型的学习了,EM(期望最大化)是很多概率图模型的优化方法,这里同样会详细的讲解它的推导原理
第七天
HMM
隐马尔科夫模型相对来说还是一个比较简单的概率图模型,其中有个比较核心的算法是 Viterbi算法,主要用来做解码用,在中文自然语言处理中经常用到;同样我们会从简单的小例子入手,由浅入深的讲解该模型的每一个步骤,包括一步步如何推导.
第八天
CRF
条件随机场与 HMM 有点类似,应用场景也比较类似,不过应用更加广发,是一个很热门的模型,同样会由浅入深的讲解该模型的每个过程以及推导.
第九天
特征工程,数据预处理,模型评估方法
会介绍一些特征选择,数据预处理的常用方法;后面再介绍一些模型评估的方法,即如何判断一个模型训练的好坏.
第十天
神经网络
这里主要介绍的是 BP神经网络,从感知机讲起,一直把BP神经网络推导完,然后到 R 语言实例实现;后面如果有时间会介绍一些其他常用的神经网络,比如径向基神经网络.
在数学建模中还有一些算法比较流行,比如遗传算法、蚁群算法、模拟退火算法等等,如果有时间可以再多讲讲.
文本挖掘预计需要 10 天.
这一部分更多的是在代码实现和应用上,除了 word2vec外,其他算法数学推导相对少一点
第一天
基于 HMM 模型的中文分词,基于 CRF 模型的中文分词
HMM 和 CRF 模型前面会讲到,所以这里主要讲应用场景,并结合实际代码进行分析,最后会用 R版的结巴分词进行处理.
第二天
句子或文档的相似度计算,BM25算法
这里专门讲一些常用的句子或词语相似度计算的方法,包括语义相似度等等.
第三天
SimHash
这里会讲一些文档去重的方法,结合代码分析
第四天
PageRank,TextRank,TrustRank
文档排序,从 PageRank讲起,利用 TextRank做关键词提取和自动摘要生成,TrustRank改进排序.
第五天
字典树,双数组字典树
这两个数据结构主要是用来做模式匹配的,顺便多讲一下数据结构的一些东西,比如数组、链表、多叉树等等.
第六天
基于模式匹配的命名实体识别,基于 CRF 的命名实体识别
命名实体识别这里我主要讲下人名识别,分别介绍模式匹配的方式,和概率统计的方式;深度学习的方式需要先懂深度神经网络的一些东西,看时间吧,有时间会先将深度学习的内容.
第七天
word2vec
词向量,很多自然语言处理的深入,都需要将单词转换成计算机容易处理且维度较低的向量,词向量就能达到很好的效果.
不过词向量相对比较复杂一点,可能一天讲不完.
第八天
基于情感词典的情感分析
这里先将简单的,基于情感词典的文本情感分析,让学员对情感分析有个了解.
第九天
基于 SVM 的情感分析
这是基于统计的情感分析方法,主要讲如何应用.
第十天
图数据库,知识图谱,推荐系统
这里泛讲一些文本挖掘的后续工作,比如使用 neo4j 构建知识图谱,基于协同过滤方法做推荐系统等等.
预计 6 天.
CNN
一、二两天专门讲 CNN,从正向传播到逆向反馈,整个推导过程,以及用 deeplearning4j 来实现手写字符识别.
RNN
三、四两天将循环神经网络,并用它做预测.
LSTM
五六两天讲长短时记忆神经网络,并用它做命名实体识别.
这部分难度比较大,时间看具体理解的情况了.
估计需要 3 天,主要讲用 ggplot2 绘制图形,以程序演示为主.
基本上经过这一系列的培训,数据挖掘常用的知识都能掌握,找工作绝对没问题,而且具备的理论知识,一些算法自己就能推导. 后面我会补一些完整的分析案例,结合具体的案例来进行强化学习.
培训费用上不到 1w,时间大概是五个多月,时间充足,不会一下子内容讲的太多消化不了.
同时提醒一句: 这个时代最缺的资源是专注力,自己不学,老师再怎么教也是没用的.