python统计单词个数全国各个地区有多少家乔丹店

人人查拥有了多少家连锁门店?_百度知道
人人查拥有了多少家连锁门店?
我有更好的答案
你好,全国拥有很多家了,差不多有953家。
采纳率:56%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。搜索关键字:python 列表生成式 generator
82637个结果)
1、打印0-9十个数字foriinrange(10):print(i)2、打印偶数:foriinrange(0,10,2):print(i)3、if判断中猜游戏,升级(只能猜三次,超过三次没猜对,提示退出)_age=18foriinrange(3):guess_age=int(input("guess_age:"))ifguess_age==_age:print("GoodLuck!")break
分类:&&&时间: 00:10:08&&&
收藏:0&&评论:0&&赞:0&&阅读:16
# 可以支持多个用户登录 (提示,通过列表存多个账户信息) uname = ['wps', 'opp' ] pword = ['123','1234'] time = 0 while time & 3: u_name = input(&用户名:&) if u_name in uname: p_wor... ...
分类:&&&时间: 00:05:01&&&
收藏:0&&评论:0&&赞:0&&阅读:13
让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 times = 0 while times &= 3: user_a = input(&用户名:&) password_a = input(&密码:&) if user_a == &wps& and password_a == &12... ...
分类:&&&时间: 00:00:51&&&
收藏:0&&评论:0&&赞:0&&阅读:12
1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意: ...
分类:&&&时间: 23:55:44&&&
收藏:0&&评论:0&&赞:0&&阅读:16
#练习:管道练习,双工,单工,将受到的消息保存到文件中 import multiprocessing as mp from multiprocessing import Process,Lock def write_file(content,lock,file_path=&e:\\test40.tx... ...
分类:&&&时间: 23:54:10&&&
收藏:0&&评论:0&&赞:0&&阅读:18
1.python中的3种除法:传统除法、精确除法、地板除。 传统除法:如果是整数除法则执行地板除,如果是浮点数除法则执行精确除法。 &&&1/2 0 &&&1.0/2.0 0.5 精确除法:除法总是会返回真实的商,不管操作数是整形还是浮点型。执行from future import division ...
分类:&&&时间: 23:52:06&&&
收藏:0&&评论:0&&赞:0&&阅读:18
python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦。 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便(https://files.cnblogs.com/files/Oran9e/PILwin64.zip ...
分类:&&&时间: 23:51:34&&&
收藏:0&&评论:0&&赞:0&&阅读:15
一、文件的打开和关闭 1.常用的打开关闭语句 第一行是打开名为“yesterday”的文件,只读属性,编码方式为utf-8。如果没有指定文件打开方式,默认只读“r”,如果没有指定编码方式可能会部分乱码。 第二行是关闭文件 2.with as语句 目的:为了防止程序员打开文件后忘记关闭文件 3.文件打 ...
分类:&&&时间: 23:51:18&&&
收藏:0&&评论:0&&赞:0&&阅读:16
# 第一题:设计一个全局变量,来保存很多个学生信息;学生(学号, 姓名,年龄);思考要用怎样的结构来保存;# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄);你将其保存在全局变量中;并提供给用户查看当前有多少个学生的功能;# 第三题:向用户提供根据学号查看指定学员具体信 ...
分类:&&&时间: 23:51:00&&&
收藏:0&&评论:0&&赞:0&&阅读:14
一、执行一个简单的代码 1、先创建目录 mkdir /home/dev 2、切换到目录 cd /home/dev 3、在目录下创建文件夹 vim hello.py 4、编辑文件内容 vim hello.world 5、执行文件内容 第一种:python /home/dev/hello.py //直接 ...
分类:&&&时间: 23:45:07&&&
收藏:0&&评论:0&&赞:0&&阅读:12
服务端代码: 客户端1代码: 客户端2代码: 先开启服务端,然后开启客户端1,客户端2,在客户端1输入信息能够收到服务端的响应信息,在客户端2输入信息不能收到服务端的响应信息,此时断开客户端1 的连接,客户端2可以正常收到服务端的响应信息, 客户端1运行结果: 客户端2运行结果: 服务端运行结果: ...
分类:&&&时间: 23:33:29&&&
收藏:0&&评论:0&&赞:0&&阅读:13
1 ''' 2 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字 3 linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao'] 4 python=['dragon','钢弹','zhejiangF4','小虎比'] 5 ''' ... ...
分类:&&&时间: 23:32:55&&&
收藏:0&&评论:0&&赞:0&&阅读:9
首先一点,之前我一直自己安装python,然后直接在python环境下再安装第三方库,但自从另一台电脑重装系统之后,我当时在没有python的情况下直接安装的anaconda,觉得她超级好用(所以如果没有python,就直接安装它吧),而且很多第三方库(有一些巨难安装)都不需要安装,她就自带,特别好 ...
分类:&&&时间: 23:32:23&&&
收藏:0&&评论:0&&赞:0&&阅读:16
a = 'wuzemwuzem' #capitalize,字符串首字母大写,其余小写。 # 如果字符串首字符为非字母字符,将返回原字符串。字符串仅包含非字母字符合法,但返回原字符串。如: v =a.capitalize() print(v) # center,20表示总长度, # 无 空白填充,可有... ...
分类:&&&时间: 23:30:36&&&
收藏:0&&评论:0&&赞:0&&阅读:14
概述 在未使用Boost库时,使用STL的std::string处理一些字符串时,总是不顺手,特别是当用了C /Python等语言后trim/split总要封装一个方法来处理。如果没有形成自己的common代码库,那就悲剧了,每用一次都要写一次,虽然难度不大,但是每次重复这样工作也还是比较费劲。一般 ...
分类:&&&时间: 23:30:00&&&
收藏:0&&评论:0&&赞:0&&阅读:13
一、基本socket例子 服务端: 客户端: 先运行服务端,再运行客户端,客户端运行结果为: 二、循环收发数据 服务端: 客户端: 先运行服务端,在运行客户端,依次在客户端输入: hi、你好、学习python, 客户端运行结果为: 服务端运行结果为: 三、简单聊天软件 服务端 客户端 先运行服务端, ...
分类:&&&时间: 23:27:02&&&
收藏:0&&评论:0&&赞:0&&阅读:12
一:何谓动态加载图片&&&&所谓动态加载图片即指html刚加载时,图片时没有的,然后通过json发生有关图片的数据,在插入到html里面去,以到底快速打开网页的目的,那么问题来了?我们如何找到加载文件的json文件呢?而这个问题正是我们实现爬取百度图片的第一步,让小可爱告诉你怎么做吧。我们以表情包这个关键字为例,如下图小可爱在百度图片搜索表情包来到上图页面,
分类:&&&时间: 22:59:11&&&
收藏:0&&评论:0&&赞:0&&阅读:18
安装图片处理模块pillow : pip install pillow pillow官网:http://pillow.readthedocs.io/en/latest/ 在views.py添加视图 若报错OSError cannot open resource 没有此字体 可以去自己的python目 ...
分类:&&&时间: 22:55:20&&&
收藏:0&&评论:0&&赞:0&&阅读:15
知识点 python 关键字 变量的定义与赋值 input() 函数 字符串的格式化 关键字和标识符 每一种编程语言都有它们自己的语法规则,就像我们所说的外语。 下列的标识符是 Python3 的关键字,并且不能用于通常的标识符。关键字必须完全按照下面拼写: 在 Python 中 我们不需要为变量指 ...
分类:&&&时间: 22:50:47&&&
收藏:0&&评论:0&&赞:0&&阅读:19
#!/usr/bin/python# -*- coding:utf-8 -*- import imp,sys imp.reload(sys)from matplotlib.font_manager import FontPropertiesimport jieba.analyseimport mat ...
分类:&&&时间: 22:50:31&&&
收藏:0&&评论:0&&赞:0&&阅读:14
共82637条&&
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!&figure&&img src=&https://pic4.zhimg.com/v2-2c68934abf3c11d46a20_b.jpg& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic4.zhimg.com/v2-2c68934abf3c11d46a20_r.jpg&&&/figure&&p&时间回到2003年,那时我还是一个名不见经传的程序员,但是上级却非常看好我,他们把整个并发模块,都交给了我一个人开发。(难道不是因为经费不足?)&/p&&p&这个星期,我必须要完成并发模块中非常重要的一个功能——线程池。&/p&&h2&为什么要使用线程池&/h2&&p&作为一个合格的程序员,接到需求,首先我得问自己一句:&br&&b&为什么要做这个需求?为什么需要线程池?&/b&&/p&&p&就像十多年后,另一个菜鸟在他的&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&博客&/a&中说的那样:&/p&&p&&b&软件中的“池”,可以理解为计划经济时代的工厂。&/b&&/p&&p&首先,作为工厂,你要管理好你生产的东西,老王从你工厂这里拿走了一把斧头,改天他不需要了,还回来,你可以把这把斧头借给老赵;&/p&&p&其次,你又不能无限制的生产,毕竟在资源极度匮乏的时代,如果都被你拿去生产了,其他要用到资源的地方怎么办?&/p&&p&总结成两点,“池”的作用:&/p&&ul&&li&&b&复用已有资源&/b&&/li&&li&&b&控制资源总量&/b&&/li&&/ul&&p&数据库连接池是这样,线程池也是如此。&/p&&p&你一个任务过来了,我发现池子里有没事干并且还活着的线程,来,拿去用,我也不用费事给你创建一条线程了,要知道线程的创建和销毁可都是麻烦事;&br&你一个任务过来了,我发现池子的线程都在忙,并且现在池子的线程已经太多了,再不限制下去就要内存溢出了,来,排队去~&/p&&h2&线程池需要考虑哪些问题&/h2&&p&简单的架构固然容易实现,但是却不能解决复杂的问题;&br&而复杂的架构可以解决复杂的问题,却没那么好实现。&/p&&p&在介绍线程池原理之前,先来大致看看我设计的线程池ThreadPoolExecutor长什么样子:&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-d387b7fbbfd5fa6a79d952_b.jpg& data-size=&normal& data-rawwidth=&434& data-rawheight=&359& class=&origin_image zh-lightbox-thumb& width=&434& data-original=&https://pic3.zhimg.com/v2-d387b7fbbfd5fa6a79d952_r.jpg&&&figcaption&图片来源 http://tutorials.jenkov.com/java-util-concurrent/threadpoolexecutor.html&/figcaption&&/figure&&p&&br&&/p&&p&你们可以先看看这张图,想想图中的各个节点都是什么,为什么需要它们?&/p&&p&好,现在开始聊聊实现一个线程池,都需要考虑哪些问题。&/p&&p&&b&1、 任务队列&/b&&br&如果每个任务过来,都直接交给线程去执行,那其实算不上解耦。&/p&&p&更好的方法是先把任务放到队列里面,然后当线程空闲的时候,去队列里面取任务过来处理。&br&为了取的时候可以形成阻塞,我选择了使用阻塞队列&b&BlockingQueue&/b&,来保存这些未被处理的任务。&/p&&p&如果你们用过RabbitMQ、Kafka之类的消息中间件,就会发现他们的原理和阻塞队列类似。&/p&&p&&b&2、任务队列的类型&/b&&br&阻塞队列有很多种:&/p&&ul&&li&&b&无界的阻塞队列&/b&(Unbounded queues),比如&b&LinkedBlockingQueue&/b&,来多少任务就放多少;&/li&&li&&b&有界的阻塞队列&/b&(Bounded queues),比如&b&ArrayBlockingQueue&/b&;&/li&&li&&b&同步移交&/b&(Direct handoffs),比如&b&SynchronousQueue&/b&,这个队列的put方法会阻塞,直到有线程准备从队列里面take,所以本质上SynchronousQueue并不是Queue,&b&它不存储任何东西,它只是在移交东西&/b&&/li&&/ul&&p&这么多种队列,都有各自的优劣,所以,把任务队列参数,放在构造函数里头,提供给使用线程池的人去设置,是最好不过的了。&/p&&p&&b&3、线程的数量&/b& &br&我定义了两个线程数的变量,一个是核心线程数&b&corePoolSize&/b&,另一个是最大线程数&b&maximumPoolSize&/b&。这两个参数的差别,可以这样来解释:&/p&&ul&&li&当线程池里的线程数少于corePoolSize时,每来一个任务,我就创建一条线程去处理,不管线程池中有没有空闲的线程;&/li&&li&当线程池里的线程数达到corePoolSize时,新来的任务,会先放到任务队列里面;&/li&&li&当任务队列放满了(如果队列是有界队列),那么要怎么办?马上拒绝新的任务吗?似乎不妥,面对这种业务突然繁忙的情况,我是不是可以破例再创建多几条线程呢?于是就有了maximumPoolSize,如果任务队列满了,但是线程池中的线程数还少于maximumPoolSize,那我就允许线程池继续创建线程,&b&这就像肠粉店里的桌子,一开始摆上十张,到了中午高峰期时,发现不够用了,老板娘再让小二从厨房里拿出几张桌子出来一样。&/b&&/li&&/ul&&p&同样的,这两个参数也应该放在构造函数,由使用者根据实际情况,来决定要使用多大容量的线程池。&/p&&p&&b&4、Keep-alive times&/b&&br&从厨房拿出来的桌子,在高峰期过后,就要渐渐撤回了吧?同样,当我发现线程池中线程的数量超过corePoolSize,就会去监控线程,发现某条线程很久没有工作了,就把它关掉,这里的很久是多久,那就要看你传过来的keepAliveTime是多少了。&br&如果你想对corePoolSize线程也做这种监控,只需要调用threadPoolExecutor.allowCoreThreadTimeOut(true)就可以了。&/p&&p&你也许好奇我是怎样判断线程有多久没有活动了,是不是以为我会启动一个监控线程,专门监控哪个线程正在偷懒?&br&想太多,其实我只是在线程从工作队列poll任务时,加上了超时限制,如果线程在keepAliveTime的时间内poll不到任务,那我就认为这条线程没事做,可以干掉了,看看这个代码片段你就清楚了,&/p&&p&ThreadPoolExecutor getTask():&/p&&div class=&highlight&&&pre&&code class=&language-java&&&span&&/span& &span class=&kd&&private&/span& &span class=&n&&Runnable&/span& &span class=&nf&&getTask&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&kt&&boolean&/span& &span class=&n&&timedOut&/span& &span class=&o&&=&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&k&&for&/span& &span class=&o&&(;;)&/span& &span class=&o&&{&/span&
&span class=&o&&...&/span&
&span class=&k&&try&/span& &span class=&o&&{&/span&
&span class=&n&&Runnable&/span& &span class=&n&&r&/span& &span class=&o&&=&/span& &span class=&n&&timed&/span& &span class=&o&&?&/span&
&span class=&n&&workQueue&/span&&span class=&o&&.&/span&&span class=&na&&poll&/span&&span class=&o&&(&/span&&span class=&n&&keepAliveTime&/span&&span class=&o&&,&/span& &span class=&n&&TimeUnit&/span&&span class=&o&&.&/span&&span class=&na&&NANOSECONDS&/span&&span class=&o&&)&/span& &span class=&o&&:&/span&
&span class=&n&&workQueue&/span&&span class=&o&&.&/span&&span class=&na&&take&/span&&span class=&o&&();&/span&
&span class=&k&&if&/span& &span class=&o&&(&/span&&span class=&n&&r&/span& &span class=&o&&!=&/span& &span class=&kc&&null&/span&&span class=&o&&)&/span&
&span class=&k&&return&/span& &span class=&n&&r&/span&&span class=&o&&;&/span&
&span class=&n&&timedOut&/span& &span class=&o&&=&/span& &span class=&kc&&true&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span& &span class=&k&&catch&/span& &span class=&o&&(&/span&&span class=&n&&InterruptedException&/span& &span class=&n&&retry&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&timedOut&/span& &span class=&o&&=&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&p&&b&5、拒绝策略&/b&&br&如果线程池已经被shutdown了,或者线程池中使用的是有界队列,而这个队列已经满了,并且线程数已经达到最大线程数,无法再创建新的线程处理请求,这时候要怎么处理新来的任务?&br&在和大家一起讨论之后,我们认为至少有这四种策略:&/p&&ul&&li&&b&AbortPolicy&/b&:使用这种策略的线程池,将在无法继续接受新任务时,给任务提交方抛出RejectedExecutionException,让他们决定要如何处理;&/li&&li&&b&CallerRunsPolicy&/b&:这个策略,顾名思义,将把任务交给调用方所在的线程去执行;&/li&&li&&b&DiscardPolicy&/b&:直接丢弃掉新来的任务;&/li&&li&&b&DiscardOldestPolicy&/b&:丢弃最旧的一条任务,其实就是丢失blockingQueue.poll()返回的那条任务,要注意,如果你使用的是PriorityBlockingQueue优先级队列作为你的任务队列,那么这个策略将会丢弃优先级最高的任务,所以一般情况下,&b&PriorityBlockingQueue和DiscardOldestPolicy不会同时使用&/b&&/li&&/ul&&p&说到策略,你们或许以为我会用策略模式。&br&这下你们猜对了,我用的就是策略模式,这个模式是如此简单,以至于我只需要定义一个策略接口,&br&RejectedExecutionHandler:&/p&&div class=&highlight&&&pre&&code class=&language-java&&&span&&/span&&span class=&kd&&public&/span& &span class=&kd&&interface&/span& &span class=&nc&&RejectedExecutionHandler&/span& &span class=&o&&{&/span&
&span class=&kt&&void&/span& &span class=&nf&&rejectedExecution&/span&&span class=&o&&(&/span&&span class=&n&&Runnable&/span& &span class=&n&&r&/span&&span class=&o&&,&/span& &span class=&n&&ThreadPoolExecutor&/span& &span class=&n&&executor&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&p&然后写对应的实现类,实现上面提到的那四种策略,比如DiscardPolicy,直接丢弃,那就是什么都不做呗,&br&DiscardPolicy:&/p&&div class=&highlight&&&pre&&code class=&language-java&&&span&&/span& &span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kd&&class&/span& &span class=&nc&&DiscardPolicy&/span& &span class=&kd&&implements&/span& &span class=&n&&RejectedExecutionHandler&/span&
&span class=&o&&{&/span&
&span class=&kd&&public&/span& &span class=&nf&&DiscardPolicy&/span&&span class=&o&&()&/span& &span class=&o&&{&/span& &span class=&o&&}&/span&
&span class=&kd&&public&/span& &span class=&kt&&void&/span& &span class=&nf&&rejectedExecution&/span&&span class=&o&&(&/span&&span class=&n&&Runnable&/span& &span class=&n&&r&/span&&span class=&o&&,&/span& &span class=&n&&ThreadPoolExecutor&/span& &span class=&n&&e&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&p&接着在构造函数里,让你们给我传入你们想要使用的策略,最后在我的拒绝任务reject()方法里,调用你们传过来的策略就ok了,&/p&&div class=&highlight&&&pre&&code class=&language-java&&&span&&/span& &span class=&kd&&final&/span& &span class=&kt&&void&/span& &span class=&nf&&reject&/span&&span class=&o&&(&/span&&span class=&n&&Runnable&/span& &span class=&n&&command&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&handler&/span&&span class=&o&&.&/span&&span class=&na&&rejectedExecution&/span&&span class=&o&&(&/span&&span class=&n&&command&/span&&span class=&o&&,&/span& &span class=&k&&this&/span&&span class=&o&&);&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&p&为什么使用final?那当然是不想让你们&b&重写&/b&啦,这个方法木有定制的必要嘛。&br&至于这个reject方法,是在哪里调用的,你们使用idea,alt + f7就知道了,然后你们会看到我写的很多深奥的代码,那些我今天不就不详细讲解了,今天重点讲解构造函数里的几个参数的作用,也就是你们可以定制的几个参数。&/p&&h2&给你们造好的轮子&/h2&&p&为了方便你们使用,我已经在Executors里面写了几个线程池的&b&工厂方法&/b&,这样,&b&很多新手就不需要了解太多关于ThreadPoolExecutor的知识了,他们只需要直接使用我的工厂方法,就可以使用线程池&/b&:&/p&&p&&b&1、newFixedThreadPool&/b&&br&如果你想对线程池里的线程总数做一个限制,那么通过Executors.newFixedThreadPool(…)获取一个固定线程数的线程池,是一个很不错的选择,它将返回一个corePoolSize和maximumPoolSize相等的线程池,&br&Executors newFixedThreadPool:&/p&&div class=&highlight&&&pre&&code class=&language-java&&&span&&/span& &span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&n&&ExecutorService&/span& &span class=&nf&&newFixedThreadPool&/span&&span class=&o&&(&/span&&span class=&kt&&int&/span& &span class=&n&&nThreads&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&k&&new&/span& &span class=&n&&ThreadPoolExecutor&/span&&span class=&o&&(&/span&&span class=&n&&nThreads&/span&&span class=&o&&,&/span& &span class=&n&&nThreads&/span&&span class=&o&&,&/span&
&span class=&mi&&0&/span&&span class=&n&&L&/span&&span class=&o&&,&/span& &span class=&n&&TimeUnit&/span&&span class=&o&&.&/span&&span class=&na&&MILLISECONDS&/span&&span class=&o&&,&/span&
&span class=&k&&new&/span& &span class=&n&&LinkedBlockingQueue&/span&&span class=&o&&&&/span&&span class=&n&&Runnable&/span&&span class=&o&&&());&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&p&&b&2、newCachedThreadPool&/b&&br&如果你希望有一个&b&非常弹性&/b&的线程池,那可以使用newCachedThreadPool:&/p&&div class=&highlight&&&pre&&code class=&language-java&&&span&&/span& &span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&n&&ExecutorService&/span& &span class=&nf&&newCachedThreadPool&/span&&span class=&o&&()&/span& &span class=&o&&{&/span&
&span class=&k&&return&/span& &span class=&k&&new&/span& &span class=&n&&ThreadPoolExecutor&/span&&span class=&o&&(&/span&&span class=&mi&&0&/span&&span class=&o&&,&/span& &span class=&n&&Integer&/span&&span class=&o&&.&/span&&span class=&na&&MAX_VALUE&/span&&span class=&o&&,&/span&
&span class=&mi&&60L&/span&&span class=&o&&,&/span& &span class=&n&&TimeUnit&/span&&span class=&o&&.&/span&&span class=&na&&SECONDS&/span&&span class=&o&&,&/span&
&span class=&k&&new&/span& &span class=&n&&SynchronousQueue&/span&&span class=&o&&&&/span&&span class=&n&&Runnable&/span&&span class=&o&&&());&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&p&从上面的工厂方法,可以看出,CachedThreadPool是一个这样配置的ThreadPoolExecutor:&/p&&ul&&li&corePoolSize:0&/li&&li&maxPoolSize:Integer.MAX_VALUE&/li&&li&keepAliveTime:60s&/li&&li&workQueue: SynchronousQueue&/li&&/ul&&p&&b&就像不同CPU、显卡的组合的电脑有不同的用途一样(数据分析、打游戏、视频处理等),不同配置的ThreadPoolExecutor也会产生不同的威力&/b&,CachedThreadPool的这些配置产生的威力在于:&/p&&ul&&li&&b&对于新的任务,如果此时线程池里没有空闲线程,线程池会毫不犹豫的创建一条新的线程去处理这个任务。&/b&因为corePoolSize是0,当前线程数肯定大于等于corePoolSize,而workQueue是SynchronousQueue,前面说了,SynchronousQueue是不存放东西的,它只移交,所以你可以认为它的队列一直是满的,最后,maxPoolSize是无穷大,再继续创建也不会达到最大线程数,所以线程池会创建一条新的线程去处理这个任务;&/li&&li&keepAliveTime是60s,你可以认为这就是线程的失效时间。新创建的线程如果60s内都没有任务要执行(缓存没有命中),那么就会被销毁,而如果在这60s内,线程分配到任务了(缓存命中),那么就可以直接拿这条创建好的线程过去用;&/li&&li&corePoolSize设置成0还有一个好处,那就是当有一大段时间,线程池都没有接收到新的任务时,线程池里的线程会逐渐被销毁,直到线程池中线程数量降为0,这样整个线程池也就不会占用什么资源了,这个特性,使得CachedThreadPool特别适合处理具有周期性的,并且执行时间短(short-lived)的任务,比如晚上十二点时,会有一波业务过来处理,其他时间段,业务很少甚至没有,这种情况就很适合使用CachedThreadPool&/li&&/ul&&p&当然,CachedThreadPool会有一个很明显的隐患,那就是线程数量不可控,当然,你已经弄懂了ThreadPoolExecutor几个重要参数,你完全可以自己定制一个有线程数量上限的CachedThreadPool,或者在创建完CachedThreadPool后,使用setMaximumPoolSize方法修改最大线程数量。&/p&&p&&b&3、newSingleThreadExecutor&/b&&br&触类旁通,很容易理解,这里就不贴源码和解释了。&/p&&p&&b&4、 newScheduledThreadPool&/b&&br&触类旁通,理解起来有些许难度,这里就不贴源码和解释了。&/p&&h2&总结&/h2&&p&本文围绕ThreadPoolExecutor的构造函数,重点讲解了ThreadPoolExecutor中,几个可以给外部定制的参数的意义和实现原理,希望能对你理解线程池并定制自己的线程池有所帮助。当然,线程池内部还有很多复杂的机制,比如各种状态的管理等等,不过这些都不是外部可以定制的了,后面我们再来讨论。&/p&&h2&后记&/h2&&p&时钟来到了24点,我跑完了所有ThreadPoolExecutor的测试用例,绿条,全部通过。&br&正准备提交代码,回家睡觉,突然发现还没给这个类写上自己的大名,于是,啪啪啪,我在类的头上,留下了我的名字......
&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b4f1ed5dad3d0668b66ecf8_b.jpg& data-size=&normal& data-rawwidth=&683& data-rawheight=&183& class=&origin_image zh-lightbox-thumb& width=&683& data-original=&https://pic4.zhimg.com/v2-b4f1ed5dad3d0668b66ecf8_r.jpg&&&figcaption&致敬Doug Lea大神!&/figcaption&&/figure&&p&&br&&/p&&p&对了,个人公众号&b&Bridge4You&/b&已经开通,欢迎关注!&/p&&p&有些话只能在那里跟你说 (〃'▽'〃)&/p&&p&&br&&/p&&h2&参考&/h2&&ul&&li&《Java并发编程实践》&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ThreadPoolExecutor (Java Platform SE 8 )&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//tutorials.jenkov.com/java-util-concurrent/threadpoolexecutor.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ThreadPoolExecutor jenkov.com&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//stackoverflow.com/questions//fixedthreadpool-vs-cachedthreadpool-the-lesser-of-two-evils& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&fixedthreadpool-vs-cachedthreadpool-the-lesser-of-two-evils&/a&&/li&&/ul&
时间回到2003年,那时我还是一个名不见经传的程序员,但是上级却非常看好我,他们把整个并发模块,都交给了我一个人开发。(难道不是因为经费不足?)这个星期,我必须要完成并发模块中非常重要的一个功能——线程池。为什么要使用线程池作为一个合格的程序…
&h2&&b&前言&/b&&/h2&&p&前文传送门:&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9786& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(1)——安装环境&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9788& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(2)——jupyter的常用操作(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9789& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(3)——jupyter的常用操作(中)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9790& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(4)——jupyter的常用操作(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9791& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(5)——Python的基本数据类型(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9792& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(6)——Python的基本数据类型(中)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9818& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(7)——Python的基本数据类型(中二)&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9820& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(8)——Python的基本数据类型(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9824& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(9)——Python的基本运算和表达式(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9844& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(10)——Python的基本运算和表达式(中)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9852& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(11)——Python的基本运算和表达式(中二)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9933& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(12)——Python的基本运算和表达式(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9935& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(13)——Python程序的基本控制流程(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9941& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(14)——Python程序的基本控制流程(中)&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9961& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(15)——Python程序的基本控制流程(中二)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9964& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(16)——Python程序的基本控制流程(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9966& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(17)——Python特色数据类型(列表)(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9970& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(18)——Python特色数据类型(列表)(中)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9971& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(19)——Python特色数据类型(列表)(下)&/a& &/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9972& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(20)——Python特色数据类型(元组)(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9973& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(21)——Python特色数据类型(元组)(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9976& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(22)——Python特色数据类型(字典)(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9978& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(23)——Python特色数据类型(字典)(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9979& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(24)——Python特色数据类型(集合)(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9980& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(25)——Python特色数据类型(集合)(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9997& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(26)——Python特色数据类型(函数)(上)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/9999& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(27)——Python特色数据类型(函数)(中)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/10000& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(28)——Python特色数据类型(函数)(下)&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei/10275& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Python从零开始系列连载(29)——Python文件操作(上)&/a&&/p&&p&&br&&/p&&h2&文件的编码&/h2&&p&&br&&/p&&p&根据编码的不同,可以将文件分为&b&文本字符&/b&和&b&二进制字节&/b& &/p&&p&&br&&/p&&p&文本字符,如汉字、英文字母、数字、标点等,字符是为了显示&/p&&p&&br&&/p&&p&二进制字节是计算机存储的形式,在计算机中,任何数据都是01串构成的二进制字节&/p&&p&&br&&/p&&p&当我们打开文本,看到的是字符,最终保存时候存储的是二进制字节&br&&/p&&p&&br&&/p&&p&文本字符的编码可以在win自带的记事本保存时选择各种编码&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-032ffdda6ab_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&723& data-rawheight=&544& class=&origin_image zh-lightbox-thumb& width=&723& data-original=&https://pic4.zhimg.com/v2-032ffdda6ab_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&这里不详细讲解这些编码方式,如果有兴趣,可以自行摆渡!&/p&&p&&br&&/p&&p&因为我们使用的是Python3.X版本,在这个版本中,文件默认的编码方式就是utf-8&/p&&p&&br&&/p&&p&文本字符的常用的编码有ASCII和Unicode&br&&/p&&p&&br&&/p&&p&值得注意的是,在Python3.X中,字符串等所有的文本字符使用的是unicode编码,可以使用encode()进行编码为utf-8&/p&&p&&br&&/p&&p&使用decode()可以将utf-8文件解码为文本字符&/p&&p&&br&&/p&&p&相互转换如图所示:&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-70dc06dcd8b2b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&346& data-rawheight=&354& class=&content_image& width=&346&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&我们在Python中看看具体例子:&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e5fff4b3e06d8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1097& data-rawheight=&109& class=&origin_image zh-lightbox-thumb& width=&1097& data-original=&https://pic1.zhimg.com/v2-e5fff4b3e06d8_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&这里将文本字符中的字符串编码为默认的utf-8文件&/p&&p&&br&&/p&&p&当然,除了utf-8编码,还有很多其他编码,比如gbk编码&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-141d4b8d77aa89ed18e0aa8f06e30a7f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&879& data-rawheight=&91& class=&origin_image zh-lightbox-thumb& width=&879& data-original=&https://pic4.zhimg.com/v2-141d4b8d77aa89ed18e0aa8f06e30a7f_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&我们将utf-8解码回来&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ed76c297ca44a00e0890_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1101& data-rawheight=&126& class=&origin_image zh-lightbox-thumb& width=&1101& data-original=&https://pic1.zhimg.com/v2-ed76c297ca44a00e0890_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&但是,如果我们将编码出的utf-8使用gbk解码,则会报错&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-a75c5a32e72c5d998c620_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&799& data-rawheight=&156& class=&origin_image zh-lightbox-thumb& width=&799& data-original=&https://pic1.zhimg.com/v2-a75c5a32e72c5d998c620_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&从错误原因看出,某位置的内容不能被解码出来&/p&&p&&br&&/p&&p&想想原因,可以这样理解&/p&&p&&br&&/p&&p&一句中文,可以翻译为英文,也可以翻译为韩文&/p&&p&&br&&/p&&p&而只懂中文和英文的翻译A可以将中文翻译(编码)为英文,也可以将英文翻译(解码)为中文&/p&&p&&br&&/p&&p&如果想要让翻译A去将韩文翻译(解码)为中文,他不懂韩文,做不到啊!&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e82026dbd8e819cdbbcde515_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&419& data-rawheight=&284& class=&content_image& width=&419&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&而不同的编码解码就像这里的各种国家语言相互翻译&/p&&p&&br&&/p&&p&我们继续看看:&/p&&p&&br&&/p&&p&我们将gbk编码后的内容解码&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0c97ff50239dfe45f5ebb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&958& data-rawheight=&219& class=&origin_image zh-lightbox-thumb& width=&958& data-original=&https://pic4.zhimg.com/v2-0c97ff50239dfe45f5ebb_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&报错了!因为我们解码没加参数,默认的是用utf-8解码&/p&&p&&br&&/p&&p&所以,我们得用gbk解码:&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-1f73e8a5efcdf58ad350a288_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&377& data-rawheight=&81& class=&content_image& width=&377&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&用gbk编码的内容当然不能用utf-8解码咯~&/p&&p&&br&&/p&&p&所以总结一下,utf-8编码出的内容只能用utf-8解码,gbk编码的内容只能用gbk解码!&/p&&p&&br&&/p&&p&注意到编码后的内容像个字符串,在字符串前面有个b,这个b表示的是二进制&/p&&p&&br&&/p&&p&也印证了字符编码后转为二进制字节&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e6db3ca76927acfdcb6d50_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&126& data-rawheight=&51& class=&content_image& width=&126&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&此时再来看一下这个图,是不是更清晰了&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-70dc06dcd8b2b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&346& data-rawheight=&354& class=&content_image& width=&346&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&我们可以通过之前学的type()函数查看内容的状态&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-8145aea56e6f0a56cd5a2f4d82194c77_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&389& data-rawheight=&270& class=&content_image& width=&389&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&编码前的字符串显示为str字符串类型&/p&&p&&br&&/p&&p&编码后的字符串显示为bytes字节类型&br&&/p&&p&&br&&/p&&p&如果你熟悉网络爬虫,遇到的最麻烦的问题之一就是编码问题,你对这种编码解码问题一定很熟悉吧,哈哈&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-9c8bd91a2facf8d3abe2120ea8daa2f8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&694& data-rawheight=&111& class=&origin_image zh-lightbox-thumb& width=&694& data-original=&https://pic1.zhimg.com/v2-9c8bd91a2facf8d3abe2120ea8daa2f8_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&下课&/p&&p&&br&&/p&&p&人生苦短,我选Python&/p&&p&未完待续,连载中......&/p&&p&&br&&/p&&p&今日作业:&/p&&p&&br&&/p&&p&将自己的名字用utf-8和gbk分别编码,看看结果啥样~&br&&/p&&p&&br&&/p&&p&&b&现在还坚持再看连载学习的你们真的很棒棒!&/b&&/p&&p&&b&入门部分已经学完大部分啦!加油&/b&&/p&&p&&br&&/p&&blockquote&作者:王大伟
Python爱好者社区唯一小编,请勿转载,谢谢。 &br&博客专栏:&a href=&http://link.zhihu.com/?target=https%3A//ask.hellobi.com/blog/wangdawei& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&王大伟-一个数据分析菜鸟&/a&&br&配套视频教程:1小时破冰入门Python &a href=&http://link.zhihu.com/?target=https%3A//edu.hellobi.com/course/234& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&edu.hellobi.com/course/&/span&&span class=&invisible&&234&/span&&span class=&ellipsis&&&/span&&/a&&br&公众号:Python爱好者社区(微信ID:python_shequ),关注,查看更多连载内容。&/blockquote&
前言前文传送门:
&p&昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要&科学上网&^_^)&/p&&p&  推荐几本好书:&/p&&p&1.&b&Pattern Recognition and Machine Learning&/b& (by Hastie, Tibshirani, and Friedman's )&/p&&p&2.&b&Elements of Statistical Learning&/b&(by Bishop's)&/p&&p&  这两本是英文的,但是非常全,第一本需要有一定的数学基础,第可以先看第二本。如果看英文觉得吃力,推荐看一下下面几本英文书。&/p&&p&3.&b&机器学习实战&/b&&/p&&p&4.&b&集体智慧编程&/b&&/p&&p&5.&b&统计学习方法&/b&&/p&&p&6.&b&机器学习&/b&&/p&&p&Ps:我个人的学习方法就是看书,因为我觉得看书比较快,视频太慢了,有些不懂的地方会找一些MOOC视频来理解,这样效率比较高。入门的话看以上推荐的几本书还是很好入门的,中英文均可,把一本书吃透比所有都看过但所有都不记得要好。&/p&&p&&br&&/p&&p&  以下是搜集的其他资料,我看过的会有一些小说明:&/p&&p&&b&Summary:&/b&&/p&&p&Online courses:&/p&&p&1.&b&Andrew Ng's &u&&a href=&http://link.zhihu.com/?target=https%3A//class.coursera.org/ml-005/lecture& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Machine Learning at Coursera&/a&&/u&&/b&&/p&&p&  很多人接触的第一个关于机器学习的视频大概就是Andrew Ng的课,入门课,讲的清晰易懂,涉及数学的方面也没有讲的很深奥,基本上都能听懂。如果数学基础差,也可以在网上搜一下这个课程的学习笔记,很多人总结的还是很好的,也很详细。唯一的不好就是这么课的编程语言是Octave,呃,相当于开源版的Matlab,但是在工作中用的不多(其实基本上不用。。),Python用的会比较多一点,所以可以看这个课程了解算法背后的原理,再用其他的编程语言(如Python,java等)来实现。&/p&&p&2.&b&&u&&a href=&http://link.zhihu.com/?target=https%3A//www.coursera.org/learn/ml-foundations/home/welcome& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Machine Learning Foundations: A Case Study Approach&/a&&/u& by UW's Carlos Guestrin and Emily Fox&/b&&/p&&p&  除了介绍机器学习算法以外,还介绍了推荐系统和深度学习,这两个概念现在很火,值得一看。此外,讲的非常有趣,用的是Python,而且是真实数据集,看完可以直接上手工业界的项目了~&/p&&p&3. &b&&u&&a href=&http://link.zhihu.com/?target=https%3A//lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Intro to Statistical Learning&/a&&/u& by Trevor Hastie and Rob Tibshirani&/b&&/p&&p&深入讲算法背后的统计和数学知识,相对于前两个课程,可能没那么有趣,毕竟数学 = =,而且在讲R的实操的时候会很啰嗦,有一些测试时错的,不太建议入门看这个,想补数学知识可以直接看上文说到的李航老师的《统计学习方法》。&/p&&p&其他: &/p&&p&4. Mining Massive Datasets&/p&&p&5. Recommender Systems&/p&&p&6. Machine Learning Summer School:&a href=&http://link.zhihu.com/?target=https%3A//www.youtube.com/playlist%3Flist%3DPLZSO_6-bSqHQCIYxE3ycGLXHMjK3XV7Iz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&youtube.com/playlist?&/span&&span class=&invisible&&list=PLZSO_6-bSqHQCIYxE3ycGLXHMjK3XV7Iz&/span&&span class=&ellipsis&&&/span&&/a&&u&&i&&a href=&http://link.zhihu.com/?target=https%3A//www.youtube.com/playlist%3Flist%3DPLZSO_6-bSqHQCIYxE3ycGLXHMjK3XV7Iz& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&https://www.youtube.com/p&/a&&a href=&http://link.zhihu.com/?target=https%3A//www.youtube.com/playlist%3Flist%3DPLZSO_6-bSqHQCIYxE3ycGLXHMjK3XV7Iz& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&laylist?list=PLZSO_6-bSqH&/a&&a href=&http://link.zhihu.com/?target=https%3A//www.youtube.com/playlist%3Flist%3DPLZSO_6-bSqHQCIYxE3ycGLXHMjK3XV7Iz& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&QCIYxE3ycGLXHMjK3XV7Iz&/a&&/i&&/u&&/p&&hr&&p&&b&Books:&/b&&/p&&p&1. Hastie, Tibshirani, and Friedman's &u&&a href=&http://link.zhihu.com/?target=http%3A//statweb.stanford.edu/%7Etibs/ElemStatLearn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Elements of Statistical Learning&/a&&/u&&/p&&p&2. Bishop's &u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.com/en-us/um/people/cmbishop/prml/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pattern Recognition and Machine Learning&/a&&/u&&/p&&p&3. David Barber's &u&&a href=&http://link.zhihu.com/?target=http%3A//web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php%3Fn%3DBrml.HomePage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bayesian Reasoning and Machine Learning&/a&&/u&&/p&&p&4. Kevin Murphy's &u&&a href=&http://link.zhihu.com/?target=http%3A//www.cs.ubc.ca/%7Emurphyk/MLbook/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Machine learning: a Probabilistic Perspective&/a&&/u&&/p&&p&5. Foundations of Machine Learning,&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/dp/X& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&amazon.com/dp/&/span&&span class=&invisible&&X&/span&&span class=&ellipsis&&&/span&&/a&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/dp/X& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mehryar Mohri, Afshin Rostamizadeh, Ameet Talwalkar&/a&&/u&&/p&&p&6. Learning From Data, &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/gp/product/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin&/a&&/u&&/p&&p&7. Information Theory, Inference, and Learning Algorithms, &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Information-Theory-Inference-Learning-Algorithms/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&David J. C. MacKay&/a&&/u&[&u&&a href=&http://link.zhihu.com/?target=http%3A//free%2520pdf/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&free pdf&/a&&/u&]&/p&&p&8. All of Statistics, &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/All-Statistics-Statistical-Inference-Springer/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Larry Wasserman&/a&&/u&&/p&&p&9. Probabilistic Graphical Models: Principles and Techniques, &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Probabilistic-Graphical-Models-Principles-Computation/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Daphne Koller, Nir Friedman&/a&&/u&&/p&&p&10. Gaussian Processes For Machine Learning, &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Gaussian-Processes-Learning-Adaptive-Computation/dp/X& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Carl Edward Rasmussen, Christopher K. I. Williams&/a&&/u& [&u&&a href=&http://link.zhihu.com/?target=http%3A//free%2520pdf/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&free pdf&/a&&/u&]&/p&&p&11. &u&&a href=&http://link.zhihu.com/?target=http%3A//bit.ly/16bxAum& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Machine Learning with R&/a&&/u&&/p&&p&12. &u&&a href=&http://link.zhihu.com/?target=http%3A//bit.ly/1vHzOWS& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Building Machine Learning Systems with Python&/a&&/u&&/p&&p&13. &u&&a href=&http://link.zhihu.com/?target=http%3A//bit.ly/1GnnQdE& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Machine Learning with Spark&/a&&/u&&/p&&p&14.
&u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp//ref%3Dsr_1_1%3Fie%3DUTF8%26qid%3D%26sr%3D8-1%26keywords%3Dmatrix%2Bcomputations& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Matrix Computations (Johns Hopkins Studies in the Mathematical Sciences): Gene H. Golub, Charles F. Van Loan: 4: Amazon.com: Books&/a&&/u&&/p&&p&15.
&u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Convex-Optimization-Stephen-Boyd/dp//ref%3Dsr_1_1%3Fie%3DUTF8%26qid%3D%26sr%3D8-1%26keywords%3Dconvex%2Boptimization& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Amazon.com: Convex Optimization (3): Stephen Boyd, Lieven Vandenberghe: Books&/a&&/u&&/p&&p&&br&&/p&&p&16. Larry Wasserman's &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/All-Statistics-Statistical-Inference-Springer/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&All of Statistics: A Concise Course in Statistical Inference&/a&&/u&&/p&&hr&&p&&b&Applications and advanced topics:&/b&&/p&&p&1. &u&&a href=&http://link.zhihu.com/?target=https%3A//www.coursera.org/course/nlangp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Language modeling&/a&&/u& course and &u&&a href=&http://link.zhihu.com/?target=http%3A//www.cs.columbia.edu/%7Emcollins/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&notes&/a&&/u&&/p&&p&2. Deep learning: &u&&a href=&http://link.zhihu.com/?target=https%3A//www.coursera.org/course/neuralnets& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ANN&/a&&/u& + &u&&a href=&http://link.zhihu.com/?target=http%3A//vision.stanford.edu/teaching/cs231n/syllabus.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CNN&/a&&/u& +&u&&a href=&http://link.zhihu.com/?target=http%3A//www.socher.org/index.php/DeepLearningTutorial/DeepLearningTutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RNN&/a&&/u& + &u&&a href=&http://link.zhihu.com/?target=http%3A//cs224d.stanford.edu/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&NLP&/a&&/u&&/p&&p&3. &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Reinforcement-Learning-Introduction-Adaptive-Computation/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Reinforcement learning&/a&&/u& and &u&&a href=&http://link.zhihu.com/?target=https%3A//www.udacity.com/course/cs373& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&robotics&/a&&/u&&/p&&p&4. &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/In-Search-Memory-Emergence-Science/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Memory&/a&&/u& and &u&&a href=&http://link.zhihu.com/?target=http%3A//en.wikipedia.org/wiki/Sparse_distributed_memory& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&distributed&/a&&/u& &u&&a href=&http://link.zhihu.com/?target=https%3A//code.google.com/p/word2vec/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&representations&/a&&/u&&/p&&p&5. &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Neural-Engineering-Representation-Neurobiological-Computational/dp//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Neural models&/a&&/u& and &u&&a href=&http://link.zhihu.com/?target=http%3A//www.amazon.com/Computational-Neuroscience-Vision-Edmund-Rolls/dp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&vision&/a&&/u&&/p&&p&6. &u&&a href=&http://link.zhihu.com/?target=http%3A//en.wikipedia.org/wiki/Cognitive_architecture& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Cognition&/a&&/u& and &u&&a href=&http://link.zhihu.com/?target=http%3A//rtw.ml.cmu.edu/rtw/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&lifelong learning&/a&&/u&&/p&&p&&br&&/p&&p&最后依然是Github的神总结:&u&&a href=&http://link.zhihu.com/?target=https%3A//github.com/ty4z2008/Qix/blob/master/dl.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 1)&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.erogol.com/brief-history-machine-learning/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Brief History of Machine Learning》&/a&&/u&&/li&&/ul&&p&介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning.&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.idsia.ch/%7Ejuergen/DeepLearning15May2014.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Deep Learning in Neural Networks: An Overview》&/a&&/u&&/li&&/ul&&p&介绍:这是瑞士人工智能实验室Jurgen Schmidhuber写的最新版本《神经网络与深度学习综述》本综述的特点是以时间排序,从1940年开始讲起,到60-80年代,80-90年代,一直讲到2000年后及最近几年的进展。涵盖了deep learning里各种tricks,引用非常全面.&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//machinelearningmastery.com/a-gentle-introduction-to-scikit-learn-a-python-machine-learning-library/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《A Gentle Introduction to Scikit-Learn: A Python Machine Learning Library》&/a&&/u&&/li&&/ul&&p&介绍:这是一份python机器学习库,如果您是一位python工程师而且想深入的学习机器学习.那么这篇文章或许能够帮助到你.&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//machinelearningmastery.com/how-to-layout-and-manage-your-machine-learning-project/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《How to Layout and Manage Your Machine Learning Project》&/a&&/u&&/li&&/ul&&p&介绍:这一篇介绍如果设计和管理属于你自己的机器学习项目的文章,里面提供了管理模版、数据管理与实践方法.&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=https%3A//medium.com/code-poet/80ea3ec3c471& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Machine Learning is Fun!》&/a&&/u&&/li&&/ul&&p&介绍:如果你还不知道什么是机器学习,或则是刚刚学习感觉到很枯燥乏味。那么推荐一读。这篇文章已经被翻译成中文,如果有兴趣可以移步&u&&a href=&http://link.zhihu.com/?target=http%3A//blog.jobbole.com/67616/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&blog.jobbole.com/67616/&/span&&span class=&invisible&&&/span&&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//cran.r-project.org/doc/contrib/Liu-R-refcard.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《R语言参考卡片》&/a&&/u&&/li&&/ul&&p&介绍:R语言是机器学习的主要语言,有很多的朋友想学习R语言,但是总是忘记一些函数与关键字的含义。那么这篇文章或许能够帮助到你&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//blog.echen.me//choosing-a-machine-learning-classifier/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Choosing a Machine Learning Classifier》&/a&&/u&&/li&&/ul&&p&介绍:我该如何选择机器学习算法,这篇文章比较直观的比较了Naive Bayes,Logistic Regression,SVM,决策树等方法的优劣,另外讨论了样本大小、Feature与Model权衡等问题。此外还有已经翻译了的版本:&u&&a href=&http://link.zhihu.com/?target=http%3A//www.52ml.net/15063.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&52ml.net/15063.html&/span&&span class=&invisible&&&/span&&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.toptal.com/machine-learning/an-introduction-to-deep-learning-from-perceptrons-to-deep-networks& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《An Introduction to Deep Learning: From Perceptrons to Deep Networks》&/a&&/u&&/li&&/ul&&p&介绍:深度学习概述:从感知机到深度网络,作者对于例子的选择、理论的介绍都很到位,由浅入深。翻译版本:&u&&a href=&http://link.zhihu.com/?target=http%3A//www.cnblogs.com/xiaowanyer/p/3701944.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&cnblogs.com/xiaowanyer/&/span&&span class=&invisible&&p/3701944.html&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//vdisk.weibo.com/s/ayG13we2vxyKl& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《The LION Way: Machine Learning plus Intelligent Optimization》&/a&&/u&&/li&&/ul&&p&介绍:&机器学习与优化&这是一本机器学习的小册子, 短短300多页道尽机器学习的方方面面. 图文并茂, 生动易懂, 没有一坨坨公式的烦恼. 适合新手入门打基础, 也适合老手温故而知新. 比起MLAPP/PRML等大部头, 也许这本你更需要!具体内容推荐阅读:&u&&a href=&http://link.zhihu.com/?target=http%3A//intelligent-optimization.org/LIONbook/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&intelligent-optimization.org&/span&&span class=&invisible&&/LIONbook/&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//php-52cs.rhcloud.com/%3Fcat%3D7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《深度学习与统计学习理论》&/a&&/u&&/li&&/ul&&p&介绍:作者是来自百度,不过他本人已经在2014年4月份申请离职了。但是这篇文章很不错如果你不知道深度学习与支持向量机/统计学习理论有什么联系?那么应该立即看看这篇文章.&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/readings/MIT6_042JF10_notes.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《计算机科学中的数学》&/a&&/u&&/li&&/ul&&p&介绍:这本书是由谷歌公司和MIT共同出品的计算机科学中的数学:&u&&a href=&http://link.zhihu.com/?target=https%3A//github.com/ty4z2008/Qix/blob/master/Mathematics%2520for%2520Computer%2520Science& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mathematics for Computer Science&/a&&/u&,Eric Lehman et al 2013 。分为5大部分:1)证明,归纳。2)结构,数论,图。3)计数,求和,生成函数。4)概率,随机行走。5)递归。等等&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.com/en-US/people/kannan/book-no-solutions-aug-21-2014.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《信息时代的计算机科学理论(Foundations of Data Science)》&/a&&/u&&/li&&/ul&&p&介绍:信息时代的计算机科学理论,目前国内有纸质书购买,&u&&a href=&http://link.zhihu.com/?target=https%3A//itunes.apple.com/us/book/introduction-to-data-science/id& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iTunes购买&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//vdisk.weibo.com/s/ayG13we2vx5qg& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Data Science with R》&/a&&/u&&/li&&/ul&&p&介绍:这是一本由雪城大学新编的第二版《数据科学入门》教材:偏实用型,浅显易懂,适合想学习R语言的同学选读。&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.informit.com/articles/article.aspx%3Fp%3D2213858& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Twenty Questions for Donald Knuth》&/a&&/u&&/li&&/ul&&p&介绍:这并不是一篇文档或书籍。这是篇向图灵奖得主Donald Knuth提问记录稿: 近日, Charles Leiserson, Al Aho, Jon Bentley等大神向Knuth提出了20个问题,内容包括TAOCP,P/NP问题,图灵机,逻辑,以及为什么大神不用电邮等等。&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//arxiv.org/pdf/.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Automatic Construction and Natural-Language Description of Nonparametric Regression Models》&/a&&/u&&/li&&/ul&&p&介绍:不会统计怎么办?不知道如何选择合适的统计模型怎么办?那这篇文章你的好好读一读了麻省理工Joshua B. Tenenbaum和剑桥Zoubin Ghahramani合作,写了一篇关于automatic statistician的文章。可以自动选择回归模型类别,还能自动写报告...&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//openreview.net/venue/iclr2014& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《ICLR 2014论文集》&/a&&/u&&/li&&/ul&&p&介绍:对深度学习和representation learning最新进展有兴趣的同学可以了解一下&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www-nlp.stanford.edu/IR-book/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Introduction to Information Retrieval》&/a&&/u&&/li&&/ul&&p&介绍:这是一本信息检索相关的书籍,是由斯坦福Manning与谷歌副总裁Raghavan等合著的Introduction to Information Retrieval一直是北美最受欢迎的信息检索教材之一。最近作者增加了该课程的幻灯片和作业。IR相关资源:&u&&a href=&http://link.zhihu.com/?target=http%3A//www-nlp.stanford.edu/IR-book/information-retrieval.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&www-nlp.stanford.edu/IR&/span&&span class=&invisible&&-book/information-retrieval.html&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.denizyuret.com/2014/02/machine-learning-in-5-pictures.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Machine learning in 10 pictures》&/a&&/u&&/li&&/ul&&p&介绍:Deniz Yuret用10张漂亮的图来解释机器学习重要概念:1. Bias/Variance Tradeoff 2. Overfitting 3. Bayesian / Occam's razor 4. Feature combination 5. Irrelevant feature 6. Basis function 7. Discriminative / Generative 8. Loss function 9. Least squares 10. Sparsity.很清晰&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//webscope.sandbox.yahoo.com/catalog.php%3Fdatatype%3Dl& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《雅虎研究院的数据集汇总》&/a&&/u&&/li&&/ul&&p&介绍:雅虎研究院的数据集汇总: 包括语言类数据,图与社交类数据,评分与分类数据,计算广告学数据,图像数据,竞赛数据,以及系统类的数据。&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www-bcf.usc.edu/%7Egareth/ISL/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《An Introduction to Statistical Learning with Applications in R》&/a&&/u&&/li&&/ul&&p&介绍:这是一本斯坦福统计学著名教授Trevor Hastie和Robert Tibshirani的新书,并且在2014年一月已经开课:&u&&a href=&http://link.zhihu.com/?target=https%3A//class.stanford.edu/courses/HumanitiesScience/StatLearning/Winter2014/about& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&class.stanford.edu/cour&/span&&span class=&invisible&&ses/HumanitiesScience/StatLearning/Winter2014/about&/span&&span class=&ellipsis&&&/span&&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//machinelearningmastery.com/best-machine-learning-resources-for-getting-started/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Best Machine Learning Resources for Getting Started&/a&&/u&&/li&&/ul&&p&介绍:机器学习最佳入门学习资料汇总是专为机器学习初学者推荐的优质学习资源,帮助初学者快速入门。而且这篇文章的介绍已经被翻译成&u&&a href=&http://link.zhihu.com/?target=http%3A//article.yeeyan.org/view/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&中文版&/a&&/u&。如果你不怎么熟悉,那么我建议你先看一看中文的介绍。&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//blog.sina.com.cn/s/blog_bda0d2f10101fpp4.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&My deep learning reading list&/a&&/u&&/li&&/ul&&p&介绍:主要是顺着Bengio的PAMI review的文章找出来的。包括几本综述文章,将近100篇论文,各位山头们的Presentation。全部都可以在google上找到。&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.morganclaypool.com/doi/abs/10.ED1V01Y201005HLT008%3FjournalCode%3Dhlt& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Cross-Language Information Retrieval&/a&&/u&&/li&&/ul&&p&介绍:这是一本书籍,主要介绍的是跨语言信息检索方面的知识。理论很多&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html%3Fca%3Ddrs-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探&/a&&/u&&/li&&/ul&&p&介绍:本文共有三个系列,作者是来自IBM的工程师。它主要介绍了推荐引擎相关算法,并帮助读者高效的实现这些算法。 &u&&a href=&http://link.zhihu.com/?target=http%3A//www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html%3Fca%3Ddrs-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&探索推荐引擎内部的秘密,第 2 部分: 深度推荐引擎相关算法 - 协同过滤&/a&&/u&,&u&&a href=&http://link.zhihu.com/?target=http%3A//www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy3/index.html%3Fca%3Ddrs-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&探索推荐引擎内部的秘密,第 3 部分: 深度推荐引擎相关算法 - 聚类&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//mimno.infosci.cornell.edu/b/articles/ml-learn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Advice for students of machine learning》&/a&&/u&&/li&&/ul&&p&介绍:康奈尔大学信息科学系助理教授David Mimno写的《对机器学习初学者的一点建议》, 写的挺实际,强调实践与理论结合,最后还引用了冯 o 诺依曼的名言: &Young man, in mathematics you don't understand things. You just get used to them.&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//web.stanford.edu/group/pdplab/pdphandbook/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&分布式并行处理的数据&/a&&/u&&/li&&/ul&&p&介绍:这是一本关于分布式并行处理的数据《Explorations in Parallel Distributed Processing: A Handbook of Models, Programs, and Exercises》,作者是斯坦福的James L. McClelland。着重介绍了各种神级网络算法的分布式实现,做Distributed Deep Learning 的童鞋可以参考下&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//blogs.technet.com/b/machinelearning/archive//what-is-machine-learning.aspx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《“机器学习”是什么?》&/a&&/u&&/li&&/ul&&p&介绍:【“机器学习”是什么?】John Platt是微软研究院杰出科学家,17年来他一直在机器学习领域耕耘。近年来机器学习变得炙手可热,Platt和同事们遂决定开设&u&&a href=&http://link.zhihu.com/?target=http%3A//blogs.technet.com/b/machinelearning/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&博客&/a&&/u&,向公众介绍机器学习的研究进展。机器学习是什么,被应用在哪里?来看Platt的这篇&u&&a href=&http://link.zhihu.com/?target=http%3A//blogs.technet.com/b/machinelearning/archive//what-is-machine-learning.aspx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&博文&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//icml.cc/2014/index/article/15.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《2014年国际机器学习大会ICML 2014 论文》&/a&&/u&&/li&&/ul&&p&介绍:2014年国际机器学习大会(ICML)已经于6月21-26日在国家会议中心隆重举办。本次大会由微软亚洲研究院和清华大学联手主办,是这个有着30多年历史并享誉世界的机器学习领域的盛会首次来到中国,已成功吸引海内外1200多位学者的报名参与。干货很多,值得深入学习下&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//blogs.technet.com/b/machinelearning/archive//machine-learning-for-industry-a-case-study.aspx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Machine Learning for Industry: A Case Study》&/a&&/u&&/li&&/ul&&p&介绍:这篇文章主要是以Learning to Rank为例说明企业界机器学习的具体应用,RankNet对NDCG之类不敏感,加入NDCG因素后变成了LambdaRank,同样的思想从神经网络改为应用到Boosted Tree模型就成就了LambdaMART。&u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.com/en-us/people/cburges/%3FWT.mc_id%3DBlog_MachLearn_General_DI& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Chirs Burges&/a&&/u&,微软的机器学习大神,Yahoo 2010 Learning to Rank Challenge第一名得主,排序模型方面有RankNet,LambdaRank,LambdaMART,尤其以LambdaMART最为突出,代表论文为: &u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.com/en-us/um/people/cburges/tech_reports/msr-tr-2010-82.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&From RankNet to LambdaRank to LambdaMART: An Overview&/a&&/u& 此外,Burges还有很多有名的代表作,比如:&u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.com/pubs/67119/svmtutorial.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&A Tutorial on Support Vector Machines for Pattern Recognition&/a&&/u& &u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.com/en-us/um/people/cburges/tech_reports/tr-2004-56.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Some Notes on Applied Mathematics for Machine Learning&/a&&/u&&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//meta-guide.com/software-meta-guide/100-best-github-deep-learning/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&100 Best GitHub: Deep Learning&/a&&/u&&/li&&/ul&&p&介绍:100 Best GitHub: Deep Learning&/p&&ul&&li&&u&&a href=&http://link.zhihu.com/?target=http%3A//www.52ml.net/12019.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《UFLDL-斯坦福大学Andrew Ng教授“Deep Learning”教程》&/a&&/u&&/li&&/ul&&p&介绍:本教程将阐述无监督特征学习和深度学习的主要观点。通过学习,你也将实现多个功能学习/深度学习算法,能看到它们为你工作,并学习如何应用/适应这些想法到新问题上。本教程假定机器学习的基本知识(特别是熟悉的监督学习,逻辑回归,梯度下降的想法),如果你不熟悉这些想法,我们建议你去这里&u&&a href=&http://link.zhihu.com/?target=http%3A//openclassroom.stanford.edu/MainFolder/CoursePage.php%3Fcourse%3DMachineLearning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习课程&/a&&/u&,并先完成第II,III,IV章(到逻辑回归)。此外这关于这套教程的源代码在github上面已经有python版本了&u&&a href=&http://link.zhihu.com/?target=https%3A//github.com/jatinshah/ufldl_tutorial& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& UFLDL Tutorial Code&/a&&/u&&/p&&blockquote&*&u&&a href=&http://link.zhihu.com/?target=http%3A//research.microsoft.}

我要回帖

更多关于 python统计单词个数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信