从2016年年初,开始用python写一个简单的爬虫,帮我收集一些数据。
6月份,开始学习Machine Learning的相关知识。
9月开始学习Spark和Scala。
如今想,整理一下思路。
先感谢下个人好友王峰给个人一些建议。他在Spark和Scala上有一些经验,让我前进的速度加快了一些。html
做为一个程序猿,之前屡次尝试看过一些机器学习方面的书,其过程能够说是步履阑珊,碰到的阻力很大。
主要缘由是,读这些机器学习的书,须要有一些数学方面的背景。
问题就在这些数学背景上,这些背景不单单是数学技巧,也有一些共识。对于缺少这些背景的我,即便一个简单的公式,也有时会感到困惑。
若是你像我同样是一个程序猿,我建议读Peter Harrington写的Machine Learning in Action (中文书名是《机器学习实战》)。
这本书是以开发者的知识背景来写的,而且提供的python代码能够下载,方便开发人员理解。python
我写了一些博文,主要做用是帮助我理解学习的算法。大部分写的很差,后来我本身都看不懂。之后慢慢修正一下。
机器学习实战 - 读书笔记(03) - 决策树
机器学习实战 - 读书笔记(04) - 朴素贝叶斯
机器学习实战 - 读书笔记(05) - Logistic回归
机器学习实战 - 读书笔记(06) – SVM支持向量机
机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提升分类性能
机器学习实战 - 读书笔记(08) - 预测数值型数据:回归
机器学习实战 - 读书笔记(10) - 利用K-均值聚类算法对未标注数据分组
机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集
机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
机器学习实战 - 读书笔记(14) - 利用SVD简化数据程序员
Level 1: 了解如何使用算法算法
须要理解算法
最低要求,也要有一些基本的统计知识。编程
须要实现算法
实现算法通常比较简单,须要注意性能和精度。
基本上这部分在实现好后,比较稳定。架构
须要实现将用户数据应用到算法上的过程。
这是程序员主要干的工做,接口、性能上的考虑不少。机器学习
须要理解用户的使用场景。
这部分价值很大。
一方面,写单元测试是不可避免的,理解用户的场景才能写出有效的单元测试程序。
另外,会有不少处理客户问题的工做,也是长经验的机会。函数式编程
在数据量不大的状况下(几个G),单机上就能够很好跑机器学习的程序。
这时,Python的用途就很大,不只有已经实现好的算法,也能够实现爬虫,从网上获取数据。函数
对于大数据处理来讲,Spark和Scala结合是如今的大趋势。
我写的博文有:
学习Scala: 初学者应该了解的知识
函数式编程 : 一个程序猿进化的故事
Scala underscore的用途
不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
Scala Collection简介
Scala on Visual Studio Code性能
我写的博文有:
Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境
Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用
Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用
蒙特卡洛树算法
成为Spark的Contributer是件很cool的事。
路还很长。