自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (10)
  • 收藏
  • 关注

原创 Hadoop集群的JobHistoryServer详解

Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的,我们可以通过下面的命令来启动Hadoop历史服务器如何启动历史服务?# mr-jobhistory-daemon.sh start historyserver这样

2016-07-20 09:33:49 4845

原创 Log4j讲解

Log4j是Apache的一个开源项目,通过使用Log4j可以灵活的配置和控制日志功能,将日志信息输出到控制台、文件、GUI组件、套接字服务器指定端口的服务、Windows NT的事件记录器、UNIX Syslog守护进程等,同时也可以控制每一条日志的输出格式以及日志的级别。Log4j通常由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地和日志信息的输出格式。日志信息的优先级从高到低有FA

2016-07-07 17:39:50 482

原创 Java公司面试题集锦(四)

151、Spring中自动装配的方式有哪些? 答: - no:不进行自动装配,手动设置Bean的依赖关系。 - byName:根据Bean的名字进行自动装配。 - byType:根据Bean的类型进行自动装配。 - constructor:类似于byType,不过是应用于构造器的参数,如果正好有一个Bean与构造器的参数类型相同则可以自动装配,否则会导致错误。 - autod

2016-07-07 17:32:57 1895

原创 Java公司面试题集锦(三)

101、常用的Web服务器有哪些? 答:Unix和Linux平台下使用最广泛的免费HTTP服务器是Apache服务器,而Windows平台的服务器通常使用IIS作为Web服务器。选择Web服务器应考虑的因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等。下面是对常见服务器的简介: - IIS:Microsoft的Web服务器产品,全称是Internet Info

2016-07-07 17:09:35 2437

原创 Java公司面试题集锦(二)

如有错误,望各位指正 本人会做更新 51、类ExampleA继承Exception,类ExampleB继承ExampleA。 有如下代码片断:try { throw new ExampleB("b")} catch(ExampleA e){ System.out.println("ExampleA");} catch(Exception e){ System.ou

2016-07-07 11:47:46 2702

原创 Java公司面试题集锦(一)

我看到了网上流传的多个《Java面试题大全》,认真的阅读了以后发现里面的很多题目是重复且无用的,而且还有很多的参考答案是错误的,于是我花了一个月时间对这个所谓的《Java面试大全》进行了整理修改,在整理过程中,参照了当时JDK最新版本(Java 8)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补充了数据结构和算法、大型网站技术架构、设计模式、UML、Spring ,

2016-07-07 10:43:48 3032

原创 编写难于测试的代码的5种方式

有一次,我在一个讲座上听到主持人问听众如何故意编写难于测试的代码。在场的小伙伴都惊呆了,因为没有任何人会故意写这种糟糕的代码。我记得他们甚至给不出一个好的答案。 当然,这个问题的目的不在于教大家如何写使同事欲哭无泪的烂代码。而是为了了解什么样的代码难于测试,来避免这些严重的问题。 这里给出我对上面那个问题的答案(当然这只是我的个人观点,每个人讨厌的都不尽相同。) 1.用大量的静态字段 尤其是

2016-07-07 09:37:48 442

原创 程序员的走与留?

初级开发人员在他们的职业生涯早期必须考虑的一个大问题就是,他是该离开还是留下。我在我职业生涯的早期发现,相对于我的同事我所得的报酬过低,而这仅仅是因为他们工作的年限比较长。报酬低也就算了,然而公司分配给我的工作量却是相同的,于是我的不满迅速增长。 但是,这是我刚毕业就给了我一份offer的公司,并且支付我去纽约上了一个全面的培训课程,让我的职业生涯有了一个轻松又容易赚钱的开始,在我的很多同龄人甚至

2016-07-06 21:00:49 521 1

原创 作为前,后端应当了解的Web缓存知识

缓存优点通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备。对于前端开发者来说,浏览器充当了重要角色。除此外常见的还有各种各样的代理服务器也可以做缓存。当Web请求到达缓存时,缓存从本地副本本地副本中提取这个副本内容而不需要经过服务器。这带来了以下优点:缓存减少了冗余的数据传输,节省流量 缓存缓解了带宽瓶颈问题。不需要更多的带宽就能更快加载页面 缓存缓解了瞬间拥塞,降低了对

2016-07-06 20:59:37 3057

原创 Java 设计模式——外观模式

概述今天要说的外观模式是一个相对简单的设计模式,而且在日常的开发中,可能你也会时常使用它,只是你可能并未想过这是一个设计模式。本文会从一些实例着手,来对本文要说明的外观模式进行尽可能全面的讲解。希望于你有益。引言这里插入一条引言的目的是让你回想一下,在你日常开发中何时用到了外观模式。 可能你的 boss 会这样安排你一个任务。这可能是一个核心模块,模块会有它的一个功能,只是你的 boss 可能只

2016-07-06 20:45:30 457

原创 Java设计模式( 策略模式)

策略模式介绍 策略模式定义策略模式(Strategy Pattern),将各种算法封装到具体的类中,作为一个抽象策略类的子类,使得它们可以互换。客户端可以自行决定使用哪种算法。策略模式类图策略模式角色划分Strategy 策略接口或者(抽象策略类),定义策略执行接口 ConcreteStrategy 具体策略类 Context 上下文类,持有具体策略类的实例,并负责调用相关的算法策略模式实例解

2016-07-06 20:39:23 371

原创 如何安装Java环境

不少初学Java的同学对安装、配置java环境还不是很熟练,安装过程中也会出现各种问题,这篇文章将帮助大家一步一步学会java环境配置。下载JDK 安装JDK 安装相对比较简单,和安装其他软件没什么区别,路径如果不需要自己特殊设置的话,就可以一路默认。需要知道安装的路径,配置的时候是需要用到的,另外, JDK中包含jre安装的时候可以选择不安装jre,下图是我安装后的文件夹 我这的安装路

2016-07-06 20:25:42 583

原创 10招让你成为杰出的Java程序员

如果你是一个热衷于技术的Java程序员, 那么下面的10个要点可以让你在众多 Java 开发人员中脱颖而出。1、拥有扎实的基础和深刻理解 OO 原则 对于 Java 程序员,深刻理解 Object Oriented Programming(面向对象编程)这一概念是必须的。没有 OOPS 的坚实基础,就领会不了像 Java 这些面向对象编程语言的美。光学习 OO 原则的定义用处不大,关键是要学会如何

2016-07-06 20:14:53 489

原创 java环境变量设置

随着IT行业的不断升温,程序员这一职业在IT行业中越来越重要,一名好的程序员可以制作网站,电脑软件,企业管理系统等等,越来越多的程序爱好者开始进行软件的开发工作,选择从事这一职业。在众多程序语言中JAVA在最近几年发展较快速,JAVA由sun公司开发,是各种应用平台的基础。很多没有基础的朋友在面对大量JAVA代码时有些力不从心,感觉无从下手,学习JAVA其实并不难,首先要学会的就是JAVA的环境安装

2016-07-06 20:13:27 529

原创 java语言编程简介

Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。 Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platf

2016-07-06 20:12:40 770

原创 java新手学习之开发教程

Java 教程 Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。 Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。 本教程通过简单的实例将让大家更好的了解JAVA编程语言。 我的第一个JAVA程序 以下我们通过一个简单的实例来展示 Java 编程,创建文件 HelloWorld.java(文件名需与类名一致

2016-07-06 20:11:44 483

原创 Java程序员必须知道的10个调试技巧

调试可以帮助识别和解决应用程序缺陷,在本文中,将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提3点建议!不要使用System.out.println作为调试工具 把所有涉及到的组件日志级别激活并使用

2016-07-06 20:07:00 1483

原创 7款Java反编译工具

今天小琪要来分享一些关于Java的反编译工具,反编译听起来是一个非常高大上的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。 一起来学习一下。 JadclipseJadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Pref

2016-07-06 19:49:09 820

原创 Java 集合框架 HashSet 和 HashMap 源码剖析

总体介绍 之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。 HashMap实现了Map接口,允许放入null元素,除该类未实现同步外,其余跟Hashtable大致相同,跟TreeMap不同,该容器不保证元素顺序,根据需要该容器可能

2016-07-05 20:44:57 497

原创 高级Java面试题汇总

这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。1、什么是可变参数? 2、断言的用途? 3、什么时候使用断言? 4、什么是垃圾回收? 5、、用一个例子解释垃圾回收? 6、什么时候运行垃圾回收? 7、垃圾回收的最佳做法? 8、什么是初始化数据块? 9、什么是静态初始化器? 10、什么是实例初始化块?

2016-07-03 20:05:08 480

原创 Java注解教程及自定义注解

Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容。在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解。Java1.5引入了注解,当前许多java框架中大量使用注解,如Hibernate、Jersey、Spring。注解作为程序的元数据嵌入到程序当中。注解可以被一些解析工具或者是编译工具进行解析。我们也可以声明注解在编译过程或执行时产生作

2016-07-03 19:52:59 508

原创 给各阶段Java程序猿的学习建议

第一部分: 零基础或基础薄弱的同学这部分主要适用于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。一、Java基础首先去找一个Java的基础教程学一下,可以去找相应的视频。学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容以后,你应该对Java有一个基本的了解了,你可以用Java语言写出

2016-07-03 19:50:27 2232 2

原创 最全面的常用正则表达式大全

一、校验数字的表达式1、 数字:^[0-9]*$2、 n位的数字:^\d{n}$3、 至少n位的数字:^\d{n,}$4、 m-n位的数字:^\d{m,n}$5、 零和非零开头的数字:^(0|[1-9][0-9]*)$6、 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7、 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$8、 正

2016-07-03 19:47:26 408

原创 Java语法的主要特性

一、Java语言是简单的 java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。二、Java语言是面向对象的 Java语言提供类、接口和继承等原语,为了简

2016-07-03 19:33:58 518

原创 Java Web 入门

首先,我们需要知道的是Web资源分为: (1)静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。常用的静态web开发技术即为html; (2)动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。常用的动态web开发技术为JSP/Servlet、ASP、.NET、PHP,而在Java中,动态web资源开发技术则称为J

2016-07-03 19:25:05 490

原创 Java 8新特性:Stream API

今天给大家介绍一下Java 8的新特性:Stream API,它能够应用在一组元素上一次执行的操作序列,在某些场景下极大简化我们的代码。 Stream API是Java8类库的核心,它能够应用在一组元素上一次执行的操作序列。Stream操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样你我们就可以将多个操作串起来。使用Stream的时候需要指定

2016-07-03 18:37:38 553

原创 在 Visual Studio 上更好开发 Python 的六大功能!

Visual Studio 2013/2015 搭配 Python Tools for Visual Studio 扩充套件让 Visual Studio 能提供对 Python 程序语言高度整合的开发环境,并完整发挥 Visual Studio 强大的功能,协助您在 Visual Studio 内开发 Python 程序上如虎添翼,提升开发效率! 以下将说明六项 Visual Studio 整合

2016-07-03 12:07:05 523

原创 常用的 Python 爬虫技巧总结

用python也差不多一年多了,python应用最多的场景还是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。 1、基本抓取网页 get方法import urllib2url = "http://www.baidu.com"response = urllib2

2016-07-02 21:50:26 487

原创 Python开发的10个小贴士

下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。注意:假设我们都用的是Python 3 1. 列表推导式你有一个list:bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子:[2, 4, 6, 8, 10]大多初学者,根据之前语言的经验会大概这样来做:bag = [1, 2, 3, 4, 5]for i in range(

2016-07-02 21:43:21 476

原创 如何用Python写一个贪吃蛇AI

前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过。但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了。 问题的关键在于,图片中的贪吃蛇真的很贪吃XD,它把矩形中出现的食物吃了个遍, 然后华丽丽地把整个矩形填满,真心是看得赏心悦目。作为一个CSer, 第一个想到的是,这东西是写程序实现的(因为,一般人干不出这事。 果断是要让程序来干的)第二个想到的是

2016-07-02 20:07:01 2421

原创 编程不需要天赋和激情

以往从来没有一种技能被神化到这样的高度: 你不仅得有天赋,还得具备激情,才能成为一名优秀的程序员。 好像那些写代码的人是早就决定干这一行似的,“当他们还是孩子的时候,他们就打算将来去写代码”。如果你缺少这两个因素之一,那么你要么是一个骗子,要么不会走得太远,不论是哪种,其实都是因为你不适合编程的缘故。这种根深蒂固的成见不仅是完全错误的,而且还是有害的——但是许多成功的程序员都赞同这个观点。 J

2016-07-02 19:57:18 497

原创 Mac 下提升工作效率的方式

Mac 系统一向以提供高效的工作环境著称,iOS、Android和服务端程序员都可以轻松的在Mac上搭建舒适的开发环境。笔者主要从事iOS开发,一般在macbook上工作,以下是这些年累积下来的一些提升工作效率的方式,和大家分享。熟记快捷键快捷键对提升效率的帮助最大,但初期掌握曲线也比较陡。熟记一些常用快捷键之后,能感受到立竿见影的效果。比较实用的有:cmd+c, cmd+v,cmd+a,这几个大家

2016-07-02 19:54:56 495

原创 Redis 和 Memcached 的区别详解

Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高

2016-07-02 19:44:59 6464

原创 Java HashMap工作原理及实现

概述从本文你可以学习到:什么时候会使用HashMap?他有什么特点? 你知道HashMap的工作原理吗? 你知道get和put的原理吗?equals()和hashCode()的都有什么作用? 你知道hash的实现吗?为什么要这样实现? 如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?当我们执行下面的操作时:HashMap<String, Integer>

2016-07-02 19:10:42 2016

原创 Java反射获取类和对象信息全解析

反射可以解决在编译时无法预知对象和类是属于那个类的,要根据程序运行时的信息才能知道该对象和类的信息的问题。在两个人协作开发时,你只要知道对方的类名就可以进行初步的开发了。获取类对象Class.forName(String clazzName)静态方法调用类的class属性,Person.class返回的就是Person的class对象(推荐使用)调用某个对象的getClass()方法具体使用还是要根

2016-07-02 18:59:06 452

机器学习实战——原书_高清

机器学习是人工智能研究领域中的一个极其重要的方向。在现今大数据时代的背景下捕获数据并从中萃取有价值的信息或模式使得这一过去为分析师与数学家所专属的研究领域越来越为人们瞩目。本书通过精心排的实例切入日常工作任务摒弃学术化语言利用高效可复用的Python 代码阐释如何处理统计数据进行数据分析及可视化。读者可从中学到一些核心的机器学习算法并将其运用于某些策略性任务中如分类、预测及推荐等。本书适合机器学习相关研究人员及互联网从业人员学习参考。

2018-11-05

R语言实战(第2版)_完整版带目录

《R语言实战》一书注重实用性,是一本全面而细致的R指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。新版做了大量更新和修正,新增了近200页内容,介绍数据挖掘、预测性分析和高级编程。 本书适合数据分析人员及R用户学习参考。 第一部分 入门 第 1 章 R语言介绍 第 2 章 创建数据集 第 3 章 图形初阶 第 4 章 基本数据管理 第 5 章 高级数据管理 第二部分 基本方法 第 6 章 基本图形 第 7 章 基本统计分析 第三部分 中级方法 第 8 章 回归 第 9 章 方差分析 第 10 章 功效分析 第 11 章 中级绘图 第 12 章 重抽样与自助法 第四部分 高级方法 第 13 章 广义线性模型 第 14 章 主成分分析和因子分析 第 15 章 时间序列 第 16 章 聚类分析 第 17 章 分类 第 18 章 处理缺失数据的高级方法 第五部分 技能拓展 第 19 章 使用ggplot2进行高级绘图 第 20 章 高级编程 第 21 章 创建包 第 22 章 创建动态报告 第 23 章 使用lattice进行高级绘图 附录 A 图形用户界面 附录 B 自定义启动环境 附录 C 从R中导出数据 附录 D R中的矩阵运算 附录 E 本书中用到的扩展包 附录 F 处理大数据集 附录 G 更新R 后记:探索R的世界 参考文献

2018-11-05

Hadoop权威指南_第四版_带目录,中文,高清

Hadoop权威指南 第四版 大数据越来越热。Hadoop技术是大数据技术的基础。 掌握了大数据技术,就意味着可以轻松找到高薪工作。 人工智能、机器学习都是基于大数据。 There are new chapters covering YARN (Chapter 4), Parquet (Chapter 13), Flume(Chapter 14), Crunch (Chapter 18), and Spark (Chapter 19).

2018-11-03

程序员代码面试指南-代码

该资源涵盖原书所有源代码,绝对物超所值,导入直接用 程序员代码面试指南:IT名企算法与数据结构题目最优解左程云 著 这是一本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失。“刷”完本书后,你就是“题王”! 本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化。

2018-11-03

大数据处理之道

这是目前为止唯一一本各大电商网站卖到缺货的书,二手书的价钱已经到了230元以上,新书一本难求,火到爆 本书覆盖了当前主流的大数据处理领域的热门技术,包括Hadoop, Spark, Storm, Dremel/Drill等,详细的分析了各种技术的应用场景和优缺点。同时,本书阐述了大数据下的日志分析系统,重点讲解了ELK日志处理方案。最后分析了大数据处理技术的发展趋势。 本书以幽默大话的表述风格,使读者容易理解,轻松掌握。重点从各个技术的起源、设计思想、构架方面阐述,帮助读者能从根源上悟出大数据处理之道。 本书适合大数据开发、大数据测试人员,以及其他软件开发或者管理人员和计算爱好者阅读 此书从广度上,涵盖了目前几乎所有的大数据处理热门技术,实为大数据行业的入门人员和从业人员的一顿盛宴,推荐!   --IBM产品经理张帅   目前大数据处理领域,比较火爆的技术有:Hadoop、Spark和Storm等,到底哪个技术较强?谁会替代谁?此书对这些技术进行了横向对比,分析了各个技术的应用场景。对大数据处理初学者和大数据行业应用人员有很好的指导作用。   --Yeahmobi产品构架师朱杰   大数据处理技术日新月异,从最初的Hadoop到Spark,在此同时,为了满足不同的场景,各大IT公司均陆续的提出了不同的大数据处理方案,目前已有数十种大数据处理技术涌现在我们面前。为此,我们只有不断的学习新技术才能跟上时代的步伐。本书对深入了解大数据处理技术有很好的参考意义。   --华为大数据技术构架师尹青   十年前,有人曾说过,"21世纪什么最贵?"——"人才",深以为然。只是在十年后的今天,大数据的价值越来越明显,堪比石油和黄金。为应对海量数据处理带来的巨大挑战,全球计算机精英们开发出众多有针对性的先进技术。本书全面介绍了目前大数据处理领域的热门技术的精髓和适应的场景,实用性很强。   --中兴高达产品经理,技术总监尹尚国   本书内容丰富,结构严谨,语言诙谐,为读者精彩呈现了大数据处理处理各大热门技术的设计思想,应用场景和实例,可帮助大数据初学者快速上手,可帮助大数据研发人员扩展知识,是大数据处理行业不可多得的书籍。   --知名IT领军人物欧立奇 [2]

2018-11-03

机器学习实战(Peter Harrington 著)

机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。 全书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,读者可从中学会机器学习的核心算法,并能将其运用于一些策略性任务中,如分类、预测、推荐。另外,还可用它们来实现一些更高级的功能,如汇总和简化等。 目 录   第一部分 分类   第1章 机器学习基础 2   1.1  何谓机器学习 3   1.1.1  传感器和海量数据 4   1.1.2  机器学习非常重要 5   1.2  关键术语 5   1.3  机器学习的主要任务 7   1.4  如何选择合适的算法 8   1.5  开发机器学习应用程序的步骤 9   1.6  Python语言的优势 10   1.6.1  可执行伪代码 10   1.6.2  Python比较流行 10   1.6.3  Python语言的特色 11   1.6.4  Python语言的缺点 11   1.7  NumPy函数库基础 12   1.8  本章小结 13   第2章 k-近邻算法  15   2.1  k-近邻算法概述 15   2.1.1  准备:使用Python导入数据 17   2.1.2  从文本文件中解析数据 19   2.1.3  如何测试分类器 20   2.2  示例:使用k-近邻算法改进约会网站的配对效果 20   2.2.1  准备数据:从文本文件中解析数据 21   2.2.2  分析数据:使用Matplotlib创建散点图 23   2.2.3  准备数据:归一化数值 25   2.2.4  测试算法:作为完整程序验证分类器 26   2.2.5  使用算法:构建完整可用系统 27   2.3  示例:手写识别系统 28   2.3.1  准备数据:将图像转换为测试向量 29   2.3.2  测试算法:使用k-近邻算法识别手写数字 30   2.4  本章小结 31   第3章 决策树  32   3.1  决策树的构造 33   3.1.1  信息增益 35   3.1.2  划分数据集 37   3.1.3  递归构建决策树 39   3.2  在Python中使用Matplotlib注解绘制树形图 42   3.2.1  Matplotlib注解 43   3.2.2  构造注解树 44   3.3  测试和存储分类器 48   3.3.1  测试算法:使用决策树执行分类 49   3.3.2  使用算法:决策树的存储 50   3.4  示例:使用决策树预测隐形眼镜类型 50   3.5  本章小结 52   第4章 基于概率论的分类方法:朴素贝叶斯  53   4.1  基于贝叶斯决策理论的分类方法 53   4.2  条件概率 55   4.3  使用条件概率来分类 56   4.4  使用朴素贝叶斯进行文档分类 57   4.5  使用Python进行文本分类 58   4.5.1  准备数据:从文本中构建词向量 58   4.5.2  训练算法:从词向量计算概率 60   4.5.3  测试算法:根据现实情况修改分类器 62   4.5.4  准备数据:文档词袋模型 64   4.6  示例:使用朴素贝叶斯过滤垃圾邮件 64   4.6.1  准备数据:切分文本 65   4.6.2  测试算法:使用朴素贝叶斯进行交叉验证 66   4.7  示例:使用朴素贝叶斯分类器从个人广告中获取区域倾向 68   4.7.1  收集数据:导入RSS源 68   4.7.2  分析数据:显示地域相关的用词 71   4.8  本章小结 72   第5章 Logistic回归  73   5.1  基于Logistic回归和Sigmoid函数的分类 74   5.2  基于最优化方法的最佳回归系数确定 75   5.2.1  梯度上升法 75   5.2.2  训练算法:使用梯度上升找到最佳参数 77   5.2.3  分析数据:画出决策边界 79   5.2.4  训练算法:随机梯度上升 80   5.3  示例:从疝气病症预测病马的死亡率 85   5.3.1  准备数据:处理数据中的缺失值 85   5.3.2  测试算法:用Logistic回归进行分类 86   5.4  本章小结 88   第6章 支持向量机 89   6.1  基于最大间隔分隔数据 89   6.2  寻找最大间隔 91   6.2.1  分类器求解的优化问题 92   6.2.2  SVM应用的一般框架 93   6.3  SMO高效优化算法 94   6.3.1  Platt的SMO算法 94   6.3.2  应用简化版SMO算法处理小规模数据集 94   6.4  利用完整Platt SMO算法加速优化 99   6.5  在复杂数据上应用核函数 105   6.5.1  利用核函数将数据映射到高维空间 106   6.5.2  径向基核函数 106   6.5.3  在测试中使用核函数 108   6.6  示例:手写识别问题回顾 111   6.7  本章小结 113   第7章 利用AdaBoost元算法提高分类   性能  115   7.1  基于数据集多重抽样的分类器 115   7.1.1  bagging:基于数据随机重抽样的分类器构建方法 116   7.1.2  boosting 116   7.2  训练算法:基于错误提升分类器的性能 117   7.3  基于单层决策树构建弱分类器 118   7.4  完整AdaBoost算法的实现 122   7.5  测试算法:基于AdaBoost的分类 124   7.6  示例:在一个难数据集上应用AdaBoost 125   7.7  非均衡分类问题 127   7.7.1  其他分类性能度量指标:正确率、召回率及ROC曲线 128   7.7.2  基于代价函数的分类器决策控制 131   7.7.3  处理非均衡问题的数据抽样方法 132   7.8  本章小结 132   第二部分 利用回归预测数值型数据   第8章 预测数值型数据:回归  136   8.1  用线性回归找到最佳拟合直线 136   8.2  局部加权线性回归 141   8.3  示例:预测鲍鱼的年龄 145   8.4  缩减系数来“理解”数据 146   8.4.1  岭回归 146   8.4.2  lasso 148   8.4.3  前向逐步回归 149   8.5  权衡偏差与方差 152   8.6  示例:预测乐高玩具套装的价格 153   8.6.1  收集数据:使用Google购物的API 153   8.6.2  训练算法:建立模型 155   8.7  本章小结 158   第9章 树回归 159   9.1  复杂数据的局部性建模 159   9.2  连续和离散型特征的树的构建 160   9.3  将CART算法用于回归 163   9.3.1  构建树 163   9.3.2  运行代码 165   9.4  树剪枝 167   9.4.1  预剪枝 167   9.4.2  后剪枝 168   9.5  模型树 170   9.6  示例:树回归与标准回归的比较 173   9.7  使用Python的Tkinter库创建GUI 176   9.7.1  用Tkinter创建GUI 177   9.7.2  集成Matplotlib和Tkinter 179   9.8  本章小结 182   第三部分 无监督学习   第10章 利用K-均值聚类算法对未标注数据分组 184   10.1  K-均值聚类算法 185   10.2  使用后处理来提高聚类性能 189   10.3  二分K-均值算法 190   10.4  示例:对地图上的点进行聚类 193   10.4.1  Yahoo! PlaceFinder API 194   10.4.2  对地理坐标进行聚类 196   10.5  本章小结 198   第11章 使用Apriori算法进行关联分析 200   11.1  关联分析 201   11.2  Apriori原理 202   11.3  使用Apriori算法来发现频繁集 204   11.3.1  生成候选项集 204   11.3.2  组织完整的Apriori算法 207   11.4  从频繁项集中挖掘关联规则 209   11.5  示例:发现国会投票中的模式 212   11.5.1  收集数据:构建美国国会投票记录的事务数据集 213   11.5.2  测试算法:基于美国国会投票记录挖掘关联规则 219   11.6  示例:发现毒蘑菇的相似特征 220   11.7  本章小结 221   第12章 使用FP-growth算法来高效发现频繁项集 223   12.1  FP树:用于编码数据集的有效方式 224   12.2  构建FP树 225   12.2.1  创建FP树的数据结构 226   12.2.2  构建FP树 227   12.3  从一棵FP树中挖掘频繁项集 231   12.3.1  抽取条件模式基 231   12.3.2  创建条件FP树 232   12.4  示例:在Twitter源中发现一些共现词 235   12.5  示例:从新闻网站点击流中挖掘 238   12.6  本章小结 239   第四部分 其他工具   第13章 利用PCA来简化数据 242   13.1  降维技术 242   13.2  PCA 243   13.2.1  移动坐标轴 243   13.2.2  在NumPy中实现PCA 246   13.3  示例:利用PCA对半导体制造数据降维 248   13.4  本章小结 251   第14章 利用SVD简化数据 252   14.1  SVD的应用 252   14.1.1  隐性语义索引 253   14.1.2  推荐系统 253   14.2  矩阵分解 254   14.3  利用Python实现SVD 255   14.4  基于协同过滤的推荐引擎 257   14.4.1  相似度计算 257   14.4.2  基于物品的相似度还是基于用户的相似度? 260   14.4.3  推荐引擎的评价 260   14.5  示例:餐馆菜肴推荐引擎 260   14.5.1  推荐未尝过的菜肴 261   14.5.2  利用SVD提高推荐的效果 263   14.5.3  构建推荐引擎面临的挑战 265   14.6  基于SVD的图像压缩 266   14.7  本章小结 268   第15章 大数据与MapReduce 270   15.1  MapReduce:分布式计算的框架 271   15.2  Hadoop流 273   15.2.1  分布式计算均值和方差的mapper 273   15.2.2  分布式计算均值和方差的reducer 274   15.3  在Amazon网络服务上运行Hadoop程序 275   15.3.1  AWS上的可用服务 276   15.3.2  开启Amazon网络服务之旅 276   15.3.3  在EMR上运行Hadoop作业 278   15.4  MapReduce上的机器学习 282   15.5  在Python中使用mrjob来自动化MapReduce 283   15.5.1  mrjob与EMR的无缝集成 283   15.5.2  mrjob的一个MapReduce脚本剖析 284   15.6  示例:分布式SVM的Pegasos算法 286   15.6.1  Pegasos算法 287   15.6.2  训练算法:用mrjob实现MapReduce版本的SVM 288   15.7  你真的需要MapReduce吗? 292   15.8  本章小结 292   附录A  Python入门 294   附录B  线性代数 303   附录C  概率论复习 309   附录D  资源 312   索引 313   版权声明 316

2018-11-03

统计学习方法_李航

统计学习是计算机及其应用领域的一门重要的学科。本书全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,列出了主要参考文献。 《统计学习方法》是统计学习及相关课程的教学参考书,适用于高等院校文本数据挖掘、信息检索及自然语言处理等专业的大学生、研究生,也可供从事计算机应用相关专业的研发人员参考。 《统计学习方法》 第1章统计学习方法概论 1.1统计学习 1.2监督学习 1.2.1基本概念 1.2.2问题的形式化 1.3统计学习三要素 1.3.1模型 1.3.2策略 1.3.3算法 1.4模型评估与模型选择 1.4.1训练误差与测试误差 1.4.2过拟合与模型选择 1.5i~则化与交叉验证 1.5.1正则化 1.5.2交叉验证 1.6泛化能力 1.6.1泛化误差 1.6.2泛化误差上界 1.7生成模型与判别模型 .1.8分类问题 1.9标注问题 1.10回归问题 本章概要 继续阅读 习题 参考文献 第2章感知机 2.1感知机模型 2.2感知机学习策略 2.2.1数据集的线性可分性 2.2.2感知机学习策略 2.3感知机学习算法 2.3.1感知机学习算法的原始形式 2.3.2算法的收敛性 2.3.3感知机学习算法的对偶形式 本章概要 继续阅读 习题 参考文献 第3章众近邻法 3.1 k近邻算法 3.2 k近邻模型 3.2.1模型 3.2.2距离度量 ·3.2.3 k值的选择 3.2.4分类决策规则 3.3k近邻法的实现:kd树 3.3.1构造af树 3.3.2搜索af树 本章概要 继续阅读 习题 参考文献 第4章朴素贝叶斯法 4.1朴素贝叶斯法的学习与分类 4.1.1基本方法 4.1.2后验概率最大化的含义 4.2朴素贝叶斯法的参数估计 4.2.1极大似然估计 4.2.2学习与分类算法 4.2.3贝叶斯估计 本章概要 继续阅读 习题 参考文献 第5章决策树 5.1决策树模型与学习 5.1.1决策树模型 5.1.2决策树与isthen规则 5.1.3决策树与条件概率分布 5.1.4决策树学习 5.2特征选择 5.2.1特征选择问题 5.2.2信息增益 5.2.3信息增益比 5.3决策树的生成 5.3.11d3算法 5.3.2 c4.5的生成算法 5.4决策树的剪枝 5.5cart算法 5.5.1cart生成 5.5.2cart剪枝 本章概要 继续阅读 习题 参考文献 第6章逻辑斯谛回归与最大熵模型 6.1逻辑斯谛回归模型 6.1.1逻辑斯谛分布 6.1.2项逻辑斯谛回归模型 6.1.3模型参数估计 6.1.4多项逻辑斯谛回归 6.2最大熵模型 6.2.1最大熵原理 6.2.2最大熵模型的定义 6.2.3最大熵模型的学习 6.2.4极大似然估计 6.3模型学习的最优化算法 6.3.1改进的迭代尺度法 6.3.2拟牛顿法 本章概要 继续阅读 习题 参考文献 第7章支持向量机 7.1线性可分支持向量机与硬间隔最大化 7.1.1线性可分支持向量机 7.1.2函数间隔和几何间隔 7.1.3间隔最大化 7.1.4学习的对偶算法 7.2线性支持向量机与软间隔最大化 7.2.1线性支持向量机 7.2.2学习的对偶算法 7.2.3支持向量 7.2.4合页损失函数 7.3非线性支持向量机与核函数 7.3.1核技巧 7.3.2定核 7.3.3常用核函数 7.3.4非线性支持向量分类机 7.4序列最小最优化算法 7.4.1两个变量二次规划的求解方法 7.4.2变量的选择方法 7.4.3smo算法 本章概要 继续阅读 习题 参考文献 第8章提升方法 8.1提升方法adaboost算法 8.1.1提升方法的基本思路 8.1.2adaboost算法 8.1.3 adaboost的例子 8.2adaboost算法的训练误差分析 8.3 adaboost算法的解释 8.3.1前向分步算法 8.3.2前向分步算法与ad9boost 8.4提升树 8.4.1提升树模型 8.4.2提升树算法 8.4.3梯度提升 本章概要 继续阅读 习题 参考文献 第9章em算法及其推广 9.1em算法的引入 9.1.1em算法 9.1.2em算法的导出 9.1.3em算法在非监督学习中的应用 9.2em算法的收敛性 9.3em算法在高斯混合模型学习中的应用 9.3.1高斯混合模型 9.3.2高斯混合模型参数估计的em算法 9.4em算法的推广 9.4.1f函数的极大极大算法 9.4.2gem算法 本章概要 继续阅读 习题 参考文献 第10章隐马尔可夫模型 10.1隐马尔可夫模型的基本概念 10.1.1隐马尔可夫模型的定义 10.1.2观测序列的生成过程 10.1.3隐马尔可夫模型的3个基本问题 10.2概率计算算法 10.2.1直接计算法 10.2.2前向算法 10.2.3后向算法 10.2.4一些概率与期望值的计算 10.3学习算法 10.3.1监督学习方法 10.3.2baum-welch算法 10.3.3baum-welch模型参数估计公式 10.4预测算法 10.4.1近似算法 10.4.2维特比算法 本章概要 继续阅读 习题 参考文献 第11章条件随机场 11.1概率无向图模型 11.1.1模型定义 11.1.2概率无向图模型的因子分解 11.2条件随机场的定义与形式 11.2.1条件随机场的定义 11.2.2条件随机场的参数化形式 11.2.3条件随机场的简化形式 11.2.4条件随机场的矩阵形式 11.3条件随机场的概率计算问题 11.3.1前向后向算法 11.3.2概率计算 11.3.3期望值的计算 11.4条件随机场的学习算法 11.4.1改进的迭代尺度法 11.4.2拟牛顿法 11.5条件随机场的预测算法 本章概要 继续阅读 习题 参考文献 第12章统计学习方法总结 附录a梯度下降法 附录b牛顿法和拟牛顿法 附录c拉格朗日对偶性

2018-11-03

推荐系统实战-项亮

推荐系统 第1章  好的推荐系统    1 1.1  什么是推荐系统    1 1.2  个性化推荐系统的应用    4 1.2.1  电子商务    4 1.2.2  电影和视频网站    8 1.2.3  个性化音乐网络电台    10 1.2.4  社交网络    12 1.2.5  个性化阅读    15 1.2.6  基于位置的服务    16 1.2.7  个性化邮件    17 1.2.8  个性化广告    18 1.3  推荐系统评测    19 1.3.1  推荐系统实验方法    20 1.3.2  评测指标    23 1.3.3  评测维度    34 第2章  利用用户行为数据    35 2.1  用户行为数据简介    36 2.2  用户行为分析    39 2.2.1  用户活跃度和物品流行度的分布    39 2.2.2  用户活跃度和物品流行度的关系    41 2.3  实验设计和算法评测    41 2.3.1  数据集    42 2.3.2  实验设计    42 2.3.3  评测指标    42 2.4  基于邻域的算法    44 2.4.1  基于用户的协同过滤算法    44 2.4.2  基于物品的协同过滤算法    51 2.4.3  UserCF和ItemCF的综合比较    59 2.5  隐语义模型    64 2.5.1  基础算法    64 2.5.2  基于LFM的实际系统的例子    70 2.5.3  LFM和基于邻域的方法的比较    72 2.6  基于图的模型    73 2.6.1  用户行为数据的二分图表示    73 2.6.2  基于图的推荐算法    73 第3章  推荐系统冷启动问题    78 3.1  冷启动问题简介    78 3.2  利用用户注册信息    79 3.3  选择合适的物品启动用户的兴趣    85 3.4  利用物品的内容信息    89 3.5  发挥专家的作用    94 第4章  利用用户标签数据    96 4.1  UGC标签系统的代表应用    97 4.1.1  Delicious    97 4.1.2  CiteULike    98 4.1.3  Last,fm    98 4.1.4  豆瓣    99 4.1.5  Hulu    99 4.2  标签系统中的推荐问题    100 4.2.1  用户为什么进行标注    100 4.2.2  用户如何打标签    101 4.2.3  用户打什么样的标签    102 4.3  基于标签的推荐系统    103 4.3.1  实验设置    104 4.3.2  一个最简单的算法    105 4.3.3  算法的改进    107 4.3.4  基于图的推荐算法    110 4.3.5  基于标签的推荐解释    112 4.4  给用户推荐标签    115 4.4.1  为什么要给用户推荐标签    115 4.4.2  如何给用户推荐标签    115 4.4.3  实验设置    116 4.4.4  基于图的标签推荐算法    119 4.5  扩展阅读    119 第5章  利用上下文信息    121 5.1  时间上下文信息    122 5.1.1  时间效应简介    122 5.1.2  时间效应举例    123 5.1.3  系统时间特性的分析    125 5.1.4  推荐系统的实时性    127 5.1.5  推荐算法的时间多样性    128 5.1.6  时间上下文推荐算法    130 5.1.7  时间段图模型    134 5.1.8  离线实验    136 5.2  地点上下文信息    139 5.3  扩展阅读    143 第6章  利用社交网络数据    144 6.1  获取社交网络数据的途径    144 6.1.1  电子邮件    145 6.1.2  用户注册信息    146 6.1.3  用户的位置数据    146 6.1.4  论坛和讨论组    146 6.1.5  即时聊天工具    147 6.1.6  社交网站    147 6.2  社交网络数据简介    148社交网络数据中的长尾分布    149 6.3  基于社交网络的推荐    150 6.3.1  基于邻域的社会化推荐算法    151 6.3.2  基于图的社会化推荐算法    152 6.3.3  实际系统中的社会化推荐算法    153 6.3.4  社会化推荐系统和协同过滤推荐系统    155 6.3.5  信息流推荐    156 6.4  给用户推荐好友    159 6.4.1  基于内容的匹配    161 6.4.2  基于共同兴趣的好友推荐    161 6.4.3  基于社交网络图的好友推荐    161 6.4.4  基于用户调查的好友推荐算法对比    164 6.5  扩展阅读    165 第7章  推荐系统实例    166 7.1  外围架构    166 7.2  推荐系统架构    167 7.3  推荐引擎的架构    171 7.3.1  生成用户特征向量    172 7.3.2  特征?物品相关推荐    173 7.3.3  过滤模块    174 7.3.4  排名模块    174 7.4  扩展阅读    178 第8章  评分预测问题    179 8.1  离线实验方法    180 8.2  评分预测算法    180 8.2.1  平均值    180 8.2.2  基于邻域的方法    184 8.2.3  隐语义模型与矩阵分解模型    186 8.2.4  加入时间信息    192 8.2.5  模型融合    193 8.2.6  Netflix Prize的相关实验结果    195 后记    196 [1]

2018-11-03

python核心知识思维导图14张

主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库)。 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文件对象,错误&异常,函数,模块,面向对象编程

2018-11-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除