原文地址:

https://www.cnblogs.com/steven-yang/p/5857964.html

----------------------------------------------------------------------------------------------------------

从2016年年初,开始用python写一个简单的爬虫,帮我收集一些数据。
6月份,开始学习Machine Learning的相关知识。
9月开始学习Spark和Scala。
现在想,整理一下思路。
先感谢下我的好友王峰给我的一些建议。他在Spark和Scala上有一些经验,让我前进的速度加快了一些。

学习算法

作为一个程序猿,以前多次尝试看过一些机器学习方面的书,其过程可以说是步履阑珊,碰到的阻力很大。
主要原因是,读这些机器学习的书,需要有一些数学方面的背景。
问题就在这些数学背景上,这些背景不仅仅是数学技巧,也有一些共识。对于缺乏这些背景的我,即使一个简单的公式,也有时会感到困惑。
如果你像我一样是一个程序猿,我建议读Peter Harrington写的Machine Learning in Action (中文书名是《机器学习实战》)。
这本书是以开发者的知识背景来写的,并且提供的python代码可以下载,方便开发人员理解。

我写了一些博文,主要作用是帮助我理解学习的算法。大部分写的不好,后来我自己都看不懂。以后慢慢修正一下。
机器学习实战 - 读书笔记(03) - 决策树
机器学习实战 - 读书笔记(04) - 朴素贝叶斯
机器学习实战 - 读书笔记(05) - Logistic回归
机器学习实战 - 读书笔记(06) – SVM支持向量机
机器学习实战 - 读书笔记(07) - 利用AdaBoost元算法提高分类性能
机器学习实战 - 读书笔记(08) - 预测数值型数据:回归
机器学习实战 - 读书笔记(10) - 利用K-均值聚类算法对未标注数据分组
机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集
机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
机器学习实战 - 读书笔记(14) - 利用SVD简化数据

学习算法的Level

  • Level 1: 了解如何使用算法

  • Level 2: 了解算法的正确使用场景
    正确的使用一个算法,需要经验和对算法理论的了解。
    我以前有些这方面的经验,很多错误在于不正确地使用了算法。
    当我们编程序给别人用时:
    • 需要理解算法
      最低要求,也要有一些基本的统计知识。

    • 需要实现算法
      实现算法一般比较简单,需要注意性能和精度。
      基本上这部分在实现好后,比较稳定。

    • 需要实现将用户数据应用到算法上的过程。
      这是程序员主要干的工作,接口、性能上的考虑很多。

    • 需要理解用户的使用场景。
      这部分价值很大。
      一方面,写单元测试是不可避免的,理解用户的场景才能写出有效的单元测试程序。
      另外,会有很多处理客户问题的工作,也是长经验的机会。

  • Level 3: 了解算法的后面的数学理论
    有人觉得这个用处不大。我觉得了解数学理论,可以:
    • 成为真正的行家
    • 未来的路还很远,怎么能戛然而止!
    • 使用算法来帮助自己的一些事情,或者实现一个新的算法。
    • 现在人工智能的潜力很大,可以自己好好玩玩。

学习python

在数据量不大的情况下(几个G),单机上就可以很好跑机器学习的程序。
这时,Python的用途就很大,不仅有已经实现好的算法,也可以实现爬虫,从网上获取数据。

学习Scala和函数式编程

对于大数据处理来说,Spark和Scala结合是现在的大趋势。
我写的博文有:
学习Scala: 初学者应该了解的知识
函数式编程 : 一个程序猿进化的故事
Scala underscore的用途
不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
Scala Collection简介
Scala on Visual Studio Code

学习Spark架构

我写的博文有:
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上的机器学习项目开发经验

学习更多的算法

蒙特卡洛树算法

成为Spark的Contributer

成为Spark的Contributer是件很cool的事。

  • 可以读读Spark的代码,从中应该可以增长不少。
  • 然后,尝试修一些Spark的Bugs。

深度学习

路还很长。

----------------------------------------------------------------------------------------------------------

【转载】 我的Machine Learning学习之路的更多相关文章

  1. 我的Machine Learning学习之路

    从2016年年初,开始用python写一个简单的爬虫,帮我收集一些数据. 6月份,开始学习Machine Learning的相关知识. 9月开始学习Spark和Scala. 现在想,整理一下思路. 先 ...

  2. [Machine Learning]学习笔记-Logistic Regression

    [Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为" ...

  3. Machine Learning 学习笔记

    点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...

  4. [Python & Machine Learning] 学习笔记之scikit-learn机器学习库

    1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...

  5. Machine Learning 学习笔记1 - 基本概念以及各分类

    What is machine learning? 并没有广泛认可的定义来准确定义机器学习.以下定义均为译文,若以后有时间,将补充原英文...... 定义1.来自Arthur Samuel(上世纪50 ...

  6. Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记

    这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间. Machine Learning System Design6.1 Evaluating a Learning Al ...

  7. machine learning学习笔记

    看到Max Welling教授主页上有不少学习notes,收藏一下吧,其最近出版了一本书呢还,还没看过. http://www.ics.uci.edu/~welling/classnotes/clas ...

  8. [Machine Learning]学习笔记-线性回归

    模型 假定有i组输入输出数据.输入变量可以用\(x^i\)表示,输出变量可以用\(y^i\)表示,一对\(\{x^i,y^i\}\)名为训练样本(training example),它们的集合则名为训 ...

  9. 吴恩达Machine Learning学习笔记(一)

    机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...

随机推荐

  1. IDEA实用教程(九)—— 创建Servlet

    4. 创建Servlet 1) 第一步 2) 第二步 3) 第三步 4) 第四步 由于新创建的Web项目, 没有Tomcat环境, 所以创建的Servlet会发生导包错误,如下图所示 : 因此我们需要 ...

  2. php5.6 的mcrypt_encrypt 函数可以和5.5.9的行为一样

    php5.5.9 -----------------------$output = "test  php !!" $key = "abcd123456789"; ...

  3. 《你说对就队》第七次作业:团队项目设计完善&编码

    <你说对就队>第七次作业:团队项目设计完善&编码 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> ...

  4. 《发际线总是和我作队》第九次团队作业:Beta冲刺Scrum Meeting2

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目冲刺 团队名称 发际线总和我作队 作业学习目标 (1)掌握软件黑盒测试技术:(2)掌握软件 ...

  5. python打造漏洞数据导出工具

    功能 [x] 支持导出的数据:IP地址.漏洞名称.风险等级.整改建议.漏洞描述.漏洞CVE编号.漏洞对应端口.漏洞对应协议.漏洞对应服务等. [x] 导出不同端口的同一个漏洞,也就是一个端口对应一个漏 ...

  6. POJ2282 The Counting Problem

    题意 Language:DefaultEspañol The Counting Problem Time Limit: 3000MS Memory Limit: 65536K Total Submis ...

  7. IOT设备通讯,MQTT物联网协议,MQTTnet

    一.IOT设备的特性 硬件能力差(存储能力基本只有几MB,CPU频率低连使用HTTP请求都很奢侈) 系统千差万别(Brillo,mbedOS,RIOT等) 如使用电池供电,电量消耗敏感 如果是小设备, ...

  8. java spring boot 导出/下载文本文件操作(包含写文本文件)

    内容简介 本文主要内容为使用java把内容写入文本文件,并实现下载/导出的功能. 实现步骤 1. controller层 @ResponseBody @RequestMapping(value = & ...

  9. noi.ac #44 链表+树状数组+思维

    \(des\) 给出长度为 \(n\) 的序列,全局变量 \(t\),\(m\) 次询问,询问区间 \([l, r]\) 内出现次数为 \(t\) 的数的个数 \(sol\) 弱化问题:求区间 \([ ...

  10. 想学习找不到好的博客?看这里>>

    想学习找不到好的博客?看这里>> (ps:内容 + 作者) 基础数论知识整理--gyh 进阶数论知识整理--又是gyh 关于SPFA--lyj(终于不是gyh) 证明二次探测定理-Line ...