自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 看懂巴菲特推荐的指数基金定投,Python验证

最近身边的朋友都陆续走上了工作岗位,领到了人生中的第一份工资,但大部分人都不知道该怎么处理这样一笔钱,最终也只能放到余额宝中。也有不少的朋友跑来问我,知道我平时研究股票,下面是我这一年的投资收益,还不错,但我还是劝说他们股市有风险,入市需谨慎。其实股票投资还是一个挺大的系统工程,但一旦研究进去了就会发现其实也挺简单,但与此同时,股市七亏两平一赚的事实还是摆在面前,所以说还是要谨慎。但有没有一种风险

2017-12-10 13:15:30 6798 5

原创 学习记录

1、pandas中的DataFrame2、pandas下的DataFrame画图参数3、PANDAS 数据合并与重塑(concat篇)4、python进行机器学习(一)之数据预处理5、pd.get_dummies(prefix=) 计算哑变量矩阵,可指定列前缀6、Pandas的 loc iloc ix 区别7、numpy函数(2)——logspace创建等比数列8、Sk

2017-11-19 09:09:39 333

原创 机器学习深入与强化--工作流程与模型优化

实际建模之前,需要做数据的处理,首先是数据清洗,2点,然后是数据采样,因为大部分模型对正负样本的比例都十分敏感。之后非常重要的就是特征工程,它包括特征处理和特征选择两部分,首先是特征处理,针对不同类型的特征值进行处理。特征选择包括过滤型、包裹型和内嵌型,过滤型考虑单个特征与y值之间的相关度,挑选最相关的特征留下来。包裹型是指逐步取特征的子集,在子集上跑算法,看效果是否比在特征全集上好,比如

2017-09-27 21:49:53 453

原创 机器学习深入与强化--特征工程

机器学习算法是一个架子,特征需要我们自己去处理,做出更好的特征,让算法去学习,从而达到更好的效果。意义中灵活性指的是,如果使用的是简单的LR,处理起来更灵活,更好控制。做的都是一些基础的事情,比如:1、跑数据,但互联网的数据都是大数据,不会存在一台服务器上,一般存在HDFS或者Hive表里,自己去写mapreduce的任务,去写HQL去聚合处理这些数据,也就是在数据仓库里打杂。

2017-09-25 23:04:44 725

原创 机器学习深入与强化--回归分析与工程应用

线性回归与逻辑回归主要是三个概念:损失函数、梯度下降、过拟合与正则化1、线性回归——连续值变量的预测

2017-09-24 17:38:55 594

原创 机器学习深入与强化--数学基础(4)

一般优化问题:无约束和有约束无约束:综上,无约束忧化直接分析法的局限:局限一:导数有可能求不出来局限二:即便求出导数,导数=0的解可能就不出来,比如导数本身就是高维函数局限三:即便是解出来了,对于有些高度非线性矩阵,解也有可能是一个集合的形式,找一个最小值的解也不容易主要就看搜索方向dk的选择:上式先忽略二次项,只看前两项,第二项

2017-09-24 14:09:21 586

原创 机器学习深入与强化--数学基础(3)

矩阵分析与应用从行视图来看,方程有解就是在坐标系中直线相交,平面相交从列试图来看,方程的解就是这些列向量的线性组合。

2017-09-20 22:38:02 588

原创 机器学习深入与强化--数学基础(2)

一、概率与统计1、不是为了学习概率与统计,而是为了进行机器学习而补充相关的概率统计知识。2、概率与统计的水很深,不必强求全面。3、关键是打通概率与统计和机器学习的关系。二、概率与统计的差别:两种相反的思路概率:已知总体,求某种事件发生的概率。统计:已知事件,估计产生这个时间的总体的分布。三、概率统计与机器学习的关系1、统计估计的是分布,机器学习训练出

2017-09-19 20:33:03 487

原创 机器学习深入与强化--数学基础(1)

数学基础十分重要!!!如果不掌握这些数学基础知识,不了解机器学习算法的底层数学逻辑,仅仅知道它在某个场景下如何使用,相当于是把算法当做一个黑盒在使用——把数据喂进去,拿出来模型。但是如果此时模型的效果并未达到理想的要求,如何调优就会成为一个很大的难题。一、夹逼定理sinxsinx为线段BC的长度,小于线段AB,小于弧AB ----> sinx sinx同时扇形A

2017-09-17 18:00:28 685

原创 机器学习深入与强化--概念

一、机器学习的概念计算机模拟人的学习行为,以获取新的知识和经验,并重新组织已有的知识使之不断的完善。简单说就是,计算机从数据中学习出规律和模式,以应用在新的数据上做预测任务。二、人工智能(AI)、机器学习(ML)和深度学习(DL)三者的关系可以用如下的同心圆进行表达。一种技术的发展

2017-09-17 16:51:57 350

原创 小白学习Machine Learning in Action-机器学习实战------决策树

书中说:k近邻算法可以完成很多分类任务,但它最大的缺点就是无法给出数据的内在含义,决策树的主要优势就在于数据形式很容易理解。决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,机器学习算法最终使用这些机器从数据集中创造的规则。决策树算法的学习分为如下几个步骤:一、从数学上讨论如何划分数据集。划分数据就要找到其决定性作用的特征,即分类效果最好的那个特征,所以要逐个评估每一个特征。完成

2017-08-27 19:35:11 911

原创 小白学习Machine Learning in Action-机器学习实战------分类之k近邻算法

k近邻算法思想:根据测量不同特征值之间的距离来进行分类。

2017-08-20 17:48:52 318

原创 小白学习Machine Learning in Action-机器学习实战------Python基础

书中介绍python基础时,使用了Numpy模块,其中存在两种不同的数据类型——矩阵matrix和数组array,都可以用来处理行列表示的数字元素。但两者之间存在哪些不同呢?当一个程序中既有matrix又有array时,我是很茫然的,为什么这里要用matrix,哪里要用array?什么时候应该用matrix,什么时候又要用array呢?类似的问题让人很头大!首先,理清二者的关系,m

2017-08-19 23:35:19 422

转载 Eclipse跨工程调用类

在Eclipse中,有时候需要跨工程调用其他工程中的方法。如下面有两个Java Project :如果要在A工程中调用B工程中的类,可以将B工程添加到A工程中:  A---- >Build Path---- >Configure Build Path---- >Java Build Path 选择Projects这样在项目A中的类就可以直接import B项目中

2016-12-04 13:42:24 1808

原创 Linux挂载系统光盘,配置系统本地yum源

今天在CentOS系统挂载光盘时出错:处理方法:然后就可以了

2016-11-26 18:13:04 1339

原创 《高可用的HDFS》——元数据备份方案

元数据备份目录项主要涉及的场景:1、NameNode启示时,从元数据备份目录中检查最新的fsimage和edits,读取到内存合并,然后将fsimage写回到指定的备份目录,并且重置edits2、元数据更新时,NameNode将日志写入edits3、做cheakpoint时,namenode将checkpoint好的fsimage写回,并重新配置edits1、nn启动加载元

2016-11-16 16:30:14 2189

原创 Linux Shell——初识Shell

Shell的默认赋值是字符串赋值,

2016-11-15 23:10:06 344

原创 《高可用的HDFS》——元数据解析

元数据有三类信息:1、文件和目录自身的属性信息2、记录文件内容存储相关信息3、记录hdfs中所有DataNode的信息INode:文件和目录是文件系统的基本元素,hdfs将其抽象为INode,每一个文件或目录都对应一个唯一的INode,其存储了名字信息、创建时间、修改时间、父目录等信息。INode信息完全位于内存,类FSImage是构建在内存元数据与磁盘元数据文件之间的

2016-11-15 21:49:42 1476

原创 TPC-W安装详解

所用系统CentOS6.3 32位TPC-W下载1、安装jdk(略)2、安装MySQL

2016-10-11 20:13:54 2019

原创 MySQL启动时报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/my

第一次安装mysql后,企图进入mysql,结果:[root@hmaster hw]# mysqlERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)启动MySQL命令:service mysql start显示mysql:未被

2016-10-11 15:10:13 5582

转载 CentOS中mysql的安装与配置

http://www.cnblogs.com/shenliang123/p/3203546.html

2016-09-24 12:45:43 223

原创 HBase的基本配置要点

打开HDFS的dfs.support.append属性。它决定HDFS是否支持追加(sync)功能。在hdfs-site.xml文件中配置,默认为false,将其设为true,在区域服务器崩溃时不至于数据丢失。即启用了HDFS写盘功能,在启动了该功能之后,就可以通过调用flush函数来让HDFS写进程确保对数据进行了持久化。这样就可以保证在一台区域服务器发生宕机时,我们可以通过在其它区域服务器上重

2016-09-23 14:17:40 486

原创 HBase修改内核参数设置

HBase是运行在Hadoop上的数据库,和其他数据库一样,它也要同时打开很多个文件。Linux对于一个进程可打开文件描述符的个数是有限制的。默认的限制是每个进程可以打开1024个文件。为了使HBase能够顺畅的运行,需要调高启动HBase的那个用户允许打开的文件描述符的最大个数。还需要调高nproc设置。nproc设置指定了用户可以同时启动的最大进程数量。        调整的话要调

2016-09-23 12:42:55 1297

原创 HRegionServer进程启动失败,HMaster正常

原因是各子节点时间不同步!!!使用命令:ntpdate cn.pool.ntp.org进行时间同步!若报错为:ntpdate[3779]: the NTP socket is in use, exiting。原因是系统ntpd服务器正在运行中,可以通过 ps aux | grep ntpd 查看,如果还是要手动同步时间,就必须先停止该服务。可以使用命令 service ntpd s

2016-09-22 23:18:44 752

原创 最全的hadoop2.4.1版本分布式集群高可用模式安装步骤

hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA、YARN等。最新的hadoop-2.4.1又增加了YARN HA。本次安装基于hadoop-2.4.1。       注意:apache提供的hadoop-2.4.1的安装包是在32位操作系统编译的,因为hadoop依赖一些C++的本地库,所以如果在64位的操作上安装hadoop-2.4.1就需要重新在64操作系统

2016-09-22 14:57:39 385

原创 删除CentOS系统自带的jdk

2016-09-21 22:53:46 208

原创 Java7并发编程--5、并发集合

Java提供了两类适用于并发场景下的集合:阻塞式集合(Blocking Collection):这类集合包括添加和移除数据的方法,当集合已满或为空时,被调用的添加或者移除方法就不能立即被执行,那么调用这个方法的线程将被阻塞,一直到该方法可以被成功执行。非阻塞式集合(Non-Blocking Collection):这类集合也包括添加和移除数据的方法,只是如果方法不能立即被执行,则返回n

2016-08-11 21:22:06 835

原创 Java7并发编程--4.4、在执行器中执行任务并且返回结果

执行器框架(Executor Framework)提供了ThreadPoolExecutor类并采用线程池来执行Callable和Runnable类型的任务,但是如果不想任务马上执行,而是想让任务过一段时间后才被执行,或者任务能够被周期性执行。为了这个目的,执行框架提供了ScheduledThreadPoolExecutor类。它是ThreadPoolExecutor的子类延迟要使用s

2016-08-11 20:28:59 361

原创 Java7并发编程--4.3、运行多个任务并处理结果

处理第一个结果1、使用 ThreadPoolExecutor.invokeAny(list); 让线程池来帮我们拿到最快返回结果的结果。invokeAny()方法接收一个列表,然后运行任务,并且返回第一个完成任务并且没有抛出异常的任务的执行结果。这个方法的返回类型与call()方法的返回类型相同。3、拿到第一个结果后,执行器会取消未完成的任务4、如果所有任务都抛出了异常,那么最终返回结

2016-08-11 18:22:33 323

原创 Java7并发编程--4.2、在执行器中执行任务并且返回结果

执行框架(Executor Framework)的优势之一就是,可以在运行并发任务的时候返回结果。但是需要以下两个类来实现功能:    接口 Callable返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。 Callable 接口类似于 Runnable。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。 Executo

2016-08-11 17:37:59 360

原创 Java7并发编程--4.1、创建线程执行器

使用执行器框架(Executor Framework)的第一步就是创建ThreadPoolExecutor对象。可以使用ThreadPoolExecutor类提供的四个构造器或者使用Executors工厂类来创建ThreadPoolExecutor对象,鉴于这些构造器在使用上的复杂性,推荐使用Executors工厂类来创建,一旦有了执行器就可以将Runnable或者Callable对象发送给它去执

2016-08-11 14:13:47 326

原创 Java7并发编程--4、线程执行框架

通常用java来开发一些简单的并发应用,会创建一些runnable对象,然后创建对应的Thread对象来执行他们,但是如果需要开发一个程序来运行大量的并发任务,再使用以前的方法,将会带来以下几点劣势: 1. 必须实现所有与thread对象管理相关的代码,比如线程的创建、执行、结束、以及结果。 2. 需要为每一个任务创建一个Thread对象,如果需要执行大量的任务,这将大大的影响应用程序的处

2016-08-11 13:31:25 317

原创 Java7并发编程--3.6、Exchanger并发任务间的数据交换

Exchanger 是一个同步辅助类,用于两个并发线程之间在一个同步点进行数据交换。       关于Exchanger 的使用:两个线程必须使用同一个Exchanger对象,且只能是两个线程间的数据交换exchanger.exchange(v)的时候,当前线程会被阻塞,直到另一个线程执行该方法,同时完成数据的交换类似这种数据交换的,生产者线程一定要先生产数据,再交换数据,消费者线

2016-08-11 13:14:49 308

原创 Java7并发编程--3.5、Phaser并发阶段任务中的阶段切换

在phaser中,有一个onAdvance方法, 该方法在参与者数量为0的时候,返回true,来表示该phaser状态为终止状态。它在phaser阶段改变的时候会自动执行。他需要两个参数,当前阶段数和注册的参与者数量。继承并覆盖phaser的 onAdvance 方法,来实现阶段切换的功能,要注意onAdvance方法中的 phase 是阶段的序号,在使用序号来判断的时候,需要注意动态注册的线

2016-08-11 12:50:51 388

原创 Java7并发编程--3.4、Phaser并发阶段任务的运行

Phaser是一个更强大的、更复杂的同步辅助类,可以代替CyclicBarrier CountDownLatch的功能,但是比他们更强大。         Phaser类机制是在每一步结束的位置对线程进行同步,当所有的线程都完成了这一步,才能进行下一步。         当我们有并发任务并且需要分解成几步执行的时候,这种机制就非常适合。         CyclicBarrier Co

2016-08-11 03:38:52 2614

原创 Java7并发编程--3.3、CyclicBarrier在集合点同步

CyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的barrier。        注意比较CountDownLatch和CyclicBarrier:         1. CountDownLatch的作用是允许1或N个线程等待其他线程完成

2016-08-11 03:06:47 474

原创 Java7并发编程--3.2、CountDownLatch等待多个并发事件完成

CountDownLatch是一个同步辅助类,不保证同步,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。           假如说:有a、b、c 三个线程,c 需要a,b线程的结果,所以c需要等待 a,b 线程都执行完了,c才能拿到正确的结果。 就是该类的一个使用场景。        countDown() 来计数(计时)        await() 创建屏

2016-08-11 02:04:05 266

原创 Java7并发编程--3.1、信号量Semaphore机制

信号量是一种计数器,用来保护一个或多个共享资源的保护。       如果线程要访问一个共享资源,它首先必须获得信号量。如果信号量的内部计数器大于0,则信号量减1,然后允许访问这个共享资源。计数器大于0意味着有可以使用的资源,因此线程将被允许使用其中的一个资源。       否则信号量的计数器等于0,信号量会把线程休眠直至计数器大于0。计数器等于0意味着所有共享资源已被其他线程用光,所以访问

2016-08-11 01:37:58 370

原创 Java7并发编程--3、线程同步辅助类

常用的同步有synchronized关键字、Lock接口以及实现类,如ReentrantLock、ReentrantReadWriteLock中的ReadLock和WriteLock。        在本章中将以以下几个更高级的同步机制来实现多线程的同步。信号量(Semaphore): 是一种计数器,用来保护一个或则多个共享资源的访问,它是并发编程的一种基础工具,大多数编程语言

2016-08-11 00:31:25 428

原创 Java7并发编程--2、锁中使用多条件condition

在lock中提供了与之关联的条件,一个锁可能关联一个或多个条件,这些条件通过condition接口声明。目的是运行线程获取锁并且查看等待某一个条件是否满足,如果不满足则挂起直到某个线程唤醒它们。condition接口提供了挂起线程和唤起线程的机制;       介绍下下面一堆代码所做的事情:使用了5个线程设置(生产)一个数值,使用5个线程移除(消费)这个数值; 在add 和 remoe中使

2016-08-10 23:38:20 3086

空空如也

空空如也

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

TA关注的人

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