前言

前言

机器学习是人工智能的一个分支,它在算法与数据的协助下,让计算机像人类一样学习和行动。针对给定的数据集,机器学习算法会学习数据的不同属性,并对以后可能遇到的数据属性进行推断。

本书教你如何使用Java创建并实现机器学习算法,既有基础概念的讲解,也有示例供你学习。当然,还会介绍一些常用的机器学习库,如Weka、Apache Mahout、Mallet等。阅读本书后,你将懂得如何为特定问题选择合适的机器学习方法,以及如何比较与评估不同技术的优劣。书中还会讲解性能提升技术,包括输入预处理以及合并不同方法产生的输出。

我们将探讨使用Java库进行机器学习的技术细节,并配有清晰易懂的示例。同时,你还将学习如何准备要分析的数据、如何选择机器学习方法,以及如何衡量流程的有效性。

本书内容

第1章 机器学习应用快速入门。讲解机器学习的基础知识、常见概念、原理,以及机器学习的应用流程。

第2章 面向机器学习的Java库与平台。介绍各种机器学习专用的Java库与平台。你将了解每个库提供的功能,以及可以用于解决哪些问题。涉及的机器学习库有Weka、Java-ML、Apache Mahout、Apache Spark、Deeplearning4j和Mallet。

第3章 基本算法——分类、回归和聚类。从最基本的机器学习任务入手,使用小巧又易懂的数据集,介绍分类、回归和聚类的关键算法。

第4章 利用集成方法预测客户关系。深入研究一个真实的客户营销数据库,目标是对可能流失以及可进行追加推销与交叉推销的客户进行预测。我们将使用集成方法解决这个问题,并且采用在KDD Cup竞赛中获胜的解决方案。

第5章 关联分析。讲解如何使用关联规则挖掘分析共生关系。我们将通过“购物篮分析”了解顾客的购买行为,并讨论如何将这种方法应用到其他领域。

第6章 使用Apache Mahout制作推荐引擎。讲解一些基本概念,帮助你了解推荐引擎原理,然后利用Apache Mahout实现两个应用——基于内容的过滤与协同推荐器。

第7章 欺诈与异常检测。介绍异常和可疑模式检测的背景,然后讲解两个实际应用——保险索赔欺诈检测与网站流量异常检测。

第8章 利用Deeplearning4j进行图像识别。介绍图像识别与基本的神经网络架构,然后讨论如何利用Deeplearning4j库实现各种深度学习架构,以实现对手写体数字的识别。

第9章 利用手机传感器进行行为识别。借助传感器数据解决模式识别问题。这一章介绍行为识别过程,讲解如何使用Android设备收集数据,并提出一个分类模型以对日常生活行为进行识别。

第10章 利用Mallet进行文本挖掘——主题模型与垃圾邮件检测。讲解文本挖掘的基础知识,介绍文本处理管道,演示如何将其应用于两个实际问题(主题建模与文档分类)。

第11章 机器学习进阶。这是全书最后一章,提供关于如何部署模型的实用建议,并进一步给出提示,告诉你去哪里寻找更多资源、资料、场所和技术,以便深入了解机器学习。

阅读前提

为了实际运行书中示例,你需要一台安装有JDK的个人计算机。所有能下载的示例与源代码都假定你使用的是支持Maven(一个依赖管理与自动创建工具)与Git(版本控制系统)的Eclipse IDE开发环境。各章示例依赖Weka、Deeplearning4j、Mallet、Apache Mahout等各种库。关于如何获取与安装这些库,会在各章首次用到它们时进行讲解。

读者对象

本书为那些想学习如何使用Java机器学习库进行数据分析的人而写。或许你已经对机器学习有了一点了解,但从未用过Java;又或许你懂得一点Java,而在机器学习方面是个新手。不论你属于哪种情况,本书都能让你快速上手,并提供必需的技能,让你能够成功创建、定制,以及在实际生活中部署机器学习应用。如果你懂得一点基本的编程知识以及数据挖掘相关概念会更好,但不要求你必须拥有与数据挖掘程序包相关的开发经验。

配套资料

本书专门配有一个在线支持网站(http://machine-learning-in-java.com),从中可以找到所有示例代码、勘误表,以及其他入门资料。

排版约定

本书中,你会发现许多不同体例,它们用于区分不同类型的信息。下面给出一些例子,并对其含义进行说明。

正文中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪URL、用户输入和Twitter用户名显示如下:

“比如,Bob拥有heighteye colorhobbies三个属性,对应值依次为185cmblueclimbingsky diving”。

代码块表示如下:

Bob={
height: 185cm,
eye color: blue,
hobbies: climbing, sky diving
}

所有命令行输入或输出写成如下形式:

12,3,7,2,0,1,8,9,13,4,11,5,15,10,6,14,16

新术语重要词语使用黑体显示。你在屏幕上看到的词,比如菜单或对话框中的词,在正文中显示如下:“在项目属性上点击鼠标右键,选择Java Build Path,单击Libraries选项卡,选择Add External JARs。”

 警告或重要的注意事项。

 

 提示和技巧。

读者反馈

欢迎提供反馈,请将你对本书的看法告诉我们:哪些方面是你喜欢的,哪些方面你不喜欢。读者反馈对我们来说很重要,因为这可以帮助我们推出更符合读者需求的著作。

要给我们提供反馈,只需向feedback@packtpub.com发送电子邮件,并在邮件主题中指出书名。

如果你有擅长的主题,并有志于写书或撰稿,请参阅www.packtpub.com/authors的撰稿指南。

读者支持

购买本社图书后,你将获得各种帮助,让手中图书最大限度地发挥功效。

下载示例代码

你可以从本书配套网站(http://machine-learning-in-java.com)下载书中示例代码。导航到Downloads版块,点击到Git仓库链接。

当然,你也可以使用自己的账号登录http://www.packpub.com网站下载本书示例代码。不论你在哪里购买本书,都可以访问http://www.packtpub.com/support。注册之后,我们会使用电子邮件将示例代码直接发送给你。

下载示例代码时,请按照如下步骤进行:

(1) 使用你的电子邮件地址与密码登录我们的网站,如果尚未加入会员,请先注册加入;

(2) 移动鼠标到SUPPORT菜单之上;

(3) 点击Code Downloads & Errata;

(4) 在Search文本框中输入书名;

(5) 选择你想下载代码文件的图书;

(6) 从下拉菜单中选择你购买本书的地点;

(7) 点击Code Download。

示例文件下载完成后,请使用如下最新版本的解压缩软件对文件进行解压。

  • WinRAR/7-Zip for Windows

  • Zipeg/iZip/UnRarX for Mac

  • 7-Zip/PeaZip for Linux

勘误

虽然我们力图让图书内容准确无误,但错误仍不可避免。如果你在本社图书中发现错误(包括正文和代码),请告诉我们,我们将感激不尽。你这样做不仅可以让其他读者免遭同样的挫折,还可帮助我们改进该书的后续版本。无论你发现什么错误,都请告诉我们。为此,可以访问http://www.packtpub.com/submit-errata,输入书名,单击链接Errata Submission Form,再输入错误详情。提交的勘误得到确认后,将被上传到我们的网站或添加到既有的勘误列表。

要查看已提交的勘误,请访问https://www.packtpub.com/books/content/support,并在搜索框中输入书名,Errata栏将列出你搜索的信息。

打击盗版

网上散布的盗版材料是各类媒体屡禁不绝的问题。在保护版权和许可方面,本社的态度非常严肃。如果你在网上看到本社作品的非法复制品,请马上把网址或网站名告诉我们,以便我们能够采取补救措施。

请通过copyright@packtpub.com与我们取得联系,并提供可疑的盗版材料链接。

感谢你为保护我们的作者提供的帮助,也十分感激对于我们提供有价值内容的能力给予的保护。

答疑

只要有与本书相关的问题,都可通过questions@packtpub.com与我们联系,我们将尽力解决。

电子书

扫描如下二维码,即可购买本书电子版。

{%}

目录

  • 版权声明
  • 前言
  • 第 1 章 机器学习应用快速入门
  • 第 2 章 面向机器学习的Java库与平台
  • 第 3 章 基本算法——分类、回归和聚类
  • 第 4 章 利用集成方法预测客户关系
  • 第 5 章 关联分析
  • 第 6 章 使用Apache Mahout制作推荐引擎
  • 第 7 章 欺诈与异常检测
  • 第 8 章 利用Deeplearning4j进行图像识别
  • 第 9 章 利用手机传感器进行行为识别
  • 第 10 章 利用Mallet进行文本挖掘——主题模型与垃圾邮件检测
  • 第 11 章 机器学习进阶