前言

首先,感谢各位支持我博客的同学,你们的支持是我一直努力的动力,正是因为你们的支持,才有了《Python机器学习算法》一书的面世:

目前,该书已经可以在各大商城预定,以下罗列各大商城的购买链接:

  • 京东
  • 当当
  • 亚马逊

除了上述的购买链接,还可以到淘宝去搜索“Python机器学习算法”,找到对应的商品。本书中凝聚着我本人的学习心得,与市面上的其他机器学习方面的书的最大区别主要有以下两点:

  • 编程实现过程中,最重要的就是理解公式的来源,本书从基本的公式开始,逐步推到,既兼顾到算法原理的说明,又有具体的实现过程;
  • 在讲解基本原理之余,专门有一章介绍在工业界中如何使用这些算法求解具体的问题。

为了兼顾到不同层次的读者,在算法的删选以及具体的实现过程都尽量能够做到深入浅出,由于个人能力以及其他一些因素,书中难免还有不足,还望各位读者能够不吝支出。下面我将给大家介绍一下整本书的写作历程,以供大家参考。

机器学习的黄金时间

近年来,人工智能AI技术的快速发展,得益于越来越多的人工智能人才的涌入和计算机硬件以及软件技术的不断发展。机器学习是人工智能AI的中一个重要的方向,在机器学习的发展过程中,越来越多的人投身于机器学习的研究中,同时,越来越多的互联网公司加入到人工智能的行列,“人工智能”一词也成为妇孺皆知的名词,这正是人工智能发展的黄金时间,同样,机器学习算法作为人工智能中的核心方法,也是发展的一个黄金时间。

机器学习中的常用算法

在机器学习的发展过程中出现了很多优秀的机器学习算法,主要可以从监督学习,无监督学习以及半监督学习的角度对其进行划分。

  • 监督学习(Supervised Learning)是指利用训练样本,包括数据特征和数据标签,训练出一个模型,并利用训练好的模型,对未知数据进行预测。常用的监督学习问题包括分类和回归,其中,分类问题的标签是离散的值,而回归问题的标签是一系列连续的值。常见的监督学习有:Logistic Regression算法,支持向量机SVM算法,BP神经网络算法,线性回归,Lasso,GBDT,随机森林等。
  • 无监督学习(Unsupervised Learning)是指事先没有训练样本,我们需要直接对数据进行建模。常见的无监督问题包括聚类。常见的无监督学习有:KMeans算法,Mean Shift算法,DBSCAN算法等。

在发展的过程中,人们不断提出一些新的算法和模型,深度学习(Deep Learning)的概念便是在这个过程中被提出,深度学习通过构建深层神经网络模型,学习到输入数据的更抽象的表示,以此达到特征学习的功能,更大程度上提高了模型的学习能力。深度学习的成功成为机器学习乃至人工智能发展史上光辉的一笔。常见的深度学习模型包括:自编码器Auto-encoder,深度信念网DBN,卷积神经网络CNN,递归神经网络RNN以及LSTM等。

机器学习的常用框架

现在是机器学习发展的一个黄金时间,越来越多的研究人员和越来越多的公司参与到机器学习的研究和算法的开发过程中,因此,出现了很多开源的机器学习算法实现以及机器学习的算法框架,下面我们罗列一些常见的框架以及开源实现:

  • TensorFlow。TensorFlow当属现在最火的深度学习框架。TensorFlow最初由Google Brain小组(该小组隶属于Google’s Machine Intelligence研究机构)的研究员和工程师开发出来的,开发目的是用于进行机器学习和深度神经网络的研究。
  • Scikit-Learn。Scikit-Learn是用于机器学习的Python 模块,它建立在SciPy之上。该项目由David Cournapeau 于2007年创立,当时项目名为Google Summer of Code,自此之后,众多志愿者都为此做出了贡献。
  • Caffe。Caffe 是由神经网络中的表达式、速度、及模块化产生的深度学习框架,是一个基于C++/CUDA架构框架,开发者能够利用它自由的组织网络,目前支持卷积神经网络和全连接神经网络(人工神经网络)。
  • Keras。Keras是极其精简并高度模块化的神经网络库,在TensorFlow 或 Theano 上都能够运行,是一个高度模块化的神经网络库,支持GPU和CPU运算。
  • ConvNetJS。ConvNetJS是利用Javascript实现的神经网络,同时还具有非常不错的基于浏览器的Demo。它最重要的用途是帮助深度学习初学者更快、更直观的理解算法。
  • Theano。Theano是一个Python库,它允许使用者有效地定义、优化和评估涉及多维数组的数学表达式,同时支持GPUs和高效符号分化操作。
  • MXNet。MXNet是一个兼具效率和灵活性的深度学习框架。它允许使用者将符号编程和命令式编程相结合,以追求效率和生产力的最大化。
  • Vowpal Wabbit。Vowpal Wabbit是一个机器学习系统,该系统推动了如在线、散列、Allreduce、Learning2search、等方面机器学习前沿技术的发展。
  • XGBoot。XGBoot是设计为高效、灵活、可移植的优化分布式梯度 Boosting库。它实现了 Gradient Boosting 框架下的机器学习算法。XGBoost通过提供并行树Boosting(也被称为GBDT、GBM),以一种快速且准确的方式解决了许多数据科学问题。

除了上述的各种框架,还有一些开源的代码,如libSVMlibFM等等。

开始写博客

互联网技术的发展为我们的学习和生活提供了很多的便利,我们可以在互联网获取到大量的学习材料,可以和技术达人,学术牛人探讨各种技术问题。

在读研究生的时候,我有幸接触机器学习。刚开始接触机器学习时,抱着对各种机器学习算法的敬畏以及对知识的渴求,我努力去学习各种算法,包括聚类算法,分类算法等。在学习的过程中,我翻阅了机器学习领域的一些书,包括《pattern recognition and machine learning》(即PRML),《Machine Learning》,《集体智慧编程》,周志华老师的《机器学习》(即俗称的西瓜书),《机器学习实战》,李航老师的《统计机器学习》以及《推荐系统实战》等等。从这些书中,我学到了很多机器学习方面的知识,通过学习,我也渐渐对机器学习领域有了较为清晰的认识。

计算机学科是一门实践性较强的学科,任何一门语言或者任何一个算法,通过对算法的实现,能够加深对算法的理解,同时,算法的设计是为了解决实际的问题,只有在实践的过程中,才能更好的解决实际的问题。

因此,在学习的过程中,一方面学习机器学习的理论知识,另一方面通过具体的数据集,实践每一个算法。俗话说:独学而无友,则孤陋而寡闻。在掌握了部分算法后,我打算把我的学习过程分享出来,比较好的方式就是组织学习的小组,但是一些现实因素的限制,我决定通过写博客的方式将我的笔记写出来,一开始写博客,我打算能够记录出学习机器学习算法的具体过程,因此,我给自己的文章建了一个响亮的标题《简单易学的机器学习算法》(写着写着,发现想要说明白也不是那么简单)。

在此过程中,微博上也出现了很多大牛在分享各种学习资料,我也不断转发这些材料,并在事后不断学习,还为此做了一个话题:

开始写《Python机器学习算法》

能够写出一本书是很多人的理想,我也不例外,在此,我得感谢博文视点的符隆美编辑,多次鼓励我写书,才有我开始动手写这本书。

正如上面所说,我积累了大量的算法,以及自己对算法的实现,期间编辑与我联系,希望我能够将自己的稿子整理出来出一本书,刚开始的时候,我是拒绝的,我总觉得自己的能力还不足以将一个算法解释清楚,更别说出一本书,同时,市场上机器学习方面的书实在是多,如:1、《机器学习实战》。这真是一本好书,让很多初学者可以入门,同时提供了很多实践的机会,真是一本实战的好书。2、李航老师的《统计机器学习》。这是一本理论上很全的书。3、周志华老师的西瓜书《机器学习》。周老师是机器学习方面的专家,这本书得到了很多人的认可,无论是知识的全面性,还是对机器学习理论的解释,都体现出了周老师学识的渊博。4、还有一些经典的专注,如《PRML》等等还有很多。以上说的这些书是大家谈论比较多的,同时,还有一些其他的课程,如斯坦福的教程等等,无一不是学习的好材料。那究竟写些什么呢,在博客中的文章还是浅显,而且过于零散。


(以上分割线表示经过了一段时间的思考)

经过半个月时间的思考,决定写一些典型的算法,因为有些算法在我实际的工作中也经常被用到。在讲解算法的基本原理的同时,配上实验的代码,从聚类算法,分类算法,回归算法,推荐算法到深度学习,希望尽可能涉及到机器学习的大部分算法,同时,介绍了在实际中使用这其中某些算法的一个例子。

最终决定写一本机器学习入门读物,注重理论与实践的结合。在最终定稿时,全书一共包括6个部分,每个部分均以典型的机器学习算法为例,从算法原理出发,由浅入深,详细介绍算法的理论,并配合目前流行的Python语言,从零开始,实现每一个算法,以加强对机器学习算法理论的理解、增强实际的算法实践能力。

以下是本书的目录:

全书的代码已上传到我的Github:Python机器学习算法。同时,我还为本书设置了QQ群:

由于本人能力等各方面的原因,书中难免存在不完善的地方,希望对本书感兴趣的同学加入到我们的群中,一起讨论机器学习相关的知识,或者本书中的一些知识,若对本书有任何的建议,还望不吝指出。

致谢

在写作的过程中,得益于大家的支持和鼓励,才有了这本书的出版,在这里,尤其需要感谢博文视点的符隆美编辑,是您的鼓励和支持才有了这本书,在此谢谢您;感谢博文视点的董雪编辑,是您一遍一遍的帮我审阅书稿;感谢我的领导姜贵彬,感谢我的组长陶辉,感谢孙永生,感谢七月科技的July,感谢王斌老师,感谢你们在这过程中的鼓励和支持,最后需要感谢的是阿里妈妈的尹慧民,美团的潘文斌以及百度的毛钦,感谢在百忙之中帮忙写推荐语。再次,感谢大家的支持。

《Python机器学习算法》的写作历程相关推荐

  1. 计算机书籍-Python机器学习算法大全

    书名:Python机器学习算法 作者:赵志勇 出版社: 电子工业出版社 ISBN:9787121313196 去当当网了解

  2. 回归素材(part8)--python机器学习算法

    学习笔记,仅供参考,有错必纠 文章目录 python机器学习算法 基本线性回归 线性回归的模型 线性回归模型的损失函数 线性回归的最小二乘法 线性回归的最小二程解法 牛顿法 基本牛顿法原理 基本牛顿法 ...

  3. 机器算法有哪几种 python_8种顶级Python机器学习算法-你必须学习

    今天,我们将更深入地学习和实现8个顶级Python机器学习算法. 让我们开始Python编程中的机器学习算法之旅. 8 Python机器学习算法 - 你必须学习 以下是Python机器学习的算法: 1 ...

  4. python常用代码入门-入门十大Python机器学习算法(附代码)

    入门十大Python机器学习算法(附代码) 今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销 ...

  5. Python机器学习算法入门教程(四)

    Python机器学习算法入门教程(四) 文章目录 Python机器学习算法入门教程(四) Logistic回归算法(分类问题) 什么是分类问题? Logistic回归算法 数学解析Logistic回归 ...

  6. Python机器学习算法入门教程(三)

    Python机器学习算法入门教程(三) 构建线性回归模型 一次函数 构建线性模型 假设函数图像 梯度下降求极值 导数 偏导数 梯度下降 sklearn应用线性回归算法 实现线性回归算法 准备数据 线性 ...

  7. Python机器学习算法入门教程(一)

    Python机器学习算法入门教程 Python机器学习 教程特点 什么是人工智能? 写在前面的话 人工智能应用 人工智能发展简史 1.第一次兴起 2.第二次发展 3.第三次崛起 机器学习&深度 ...

  8. 入门十大Python机器学习算法(附代码)

    今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1.线性回归 线性回归通常用于根据连续变量估计实际数值(房价.呼叫次数.总销售额等).我们通过拟合最佳直线来建立自变量和 ...

  9. python机器学习算法(赵志勇)学习笔记(基础部分)

    文章目录 机器学习基础 机器学习概念 机器学习算法的分类 监督学习 监督学习重点 监督学习的流程 监督学习算法 分类问题(Classification) 回归问题(Regression) 无监督学习 ...

最新文章

  1. pyecharts x轴全显示_超详细Pyecharts 1.x 教程,让你的图表动起来
  2. php stock 资料地址
  3. 二维数组最大关联子数组
  4. 真想学习?扔掉你详细的计划吧!
  5. nssl1438-战略威慑【枚举,树的直径】
  6. vue 集成 Loading 加载效果
  7. labelimg如何调整框的颜色_PS学习之旅:如何更好调整画面明暗?明度、色阶详细介绍,收藏...
  8. avue里面的select怎么设置默认值_mysql大量的waiting for table level lock怎么办
  9. Android-support-v4源码查看
  10. selenium和python的关系,Selenium+python
  11. 华为旗下首款弹出式前置摄像头新机发布:或归属荣耀旗下...
  12. python 在线网盘源码_发现一个开源的网盘程序!
  13. LPC11XX驱动LCD1602程序
  14. 华硕B85M系列主板 免编程器刷BIOS教程
  15. 如何解决 CAD 启动非常慢的问题
  16. HTML动画能在手机播放吗,如何使动画在手机中屏幕适配
  17. 计算机系晚自习,计算机系晚自习学习计划.doc
  18. Autovue Client/Server 性能优化
  19. c语言 'max' : undeclared identifier,c语言中undeclared identifier是什么意思?
  20. python自定义二元一次函数_Python实现的拟合二元一次函数功能示例【基于scipy模块】...

热门文章

  1. 在阿里云容器服务上,轻松搭建Concourse CI
  2. 公开招标与限制性招标的区别
  3. Java中API的两个文件CHM和CHW
  4. 【USB笔记】端点描述符Endpoint Descriptor
  5. 【学生系统】——登录界面
  6. Ripple(瑞波)之交易清算
  7. 航天信息管理软件无法连接服务器,航天信息客户端怎样连接服务器
  8. 天猫精灵 python_树莓派通过snowboy唤醒引擎(Python2、Python3的都可以),自定义唤醒词、关键字,达到小爱同学、天猫精灵一样的唤醒方式的全套教程...
  9. PyG异质图神经网络NotImplementedError问题
  10. 各大媒体优劣对比_户外广告媒体类型与优缺点对比分析