- 博客(26)
- 资源 (58)
- 收藏
- 关注
原创 朴素贝叶斯算法
朴素贝叶斯与前一篇ID3决策树最大的不同之处是前者是给出最大可能性结果的猜想和概率,后者是“武断”的给定唯一分类结果。我们称之为“朴素”,是因为整个形式化过程只做原始、简单的假设。贝叶斯决策理论的核心思想,即选择具有高概率的决策。我们先加深下贝叶斯公式的了解,贝叶斯是基于概率的机器学习的基石。事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系...
2017-12-29 23:32:59 1026
原创 ID3算法决策树
决策树 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。缺点:可能会产生过度匹配问题。适用数据类型:数值型和标称型 本篇介绍的是ID3算法决策树,ID3算法局限性只能划分标称型数据集,最终会被明确划分到某个分类中,在后面的代码中可以看得出是如何实现的。 决策树算法就是不断的判断和分支,但是数据有N列特性,这些特性进行判断的先后顺序就决定了决策算法的好坏。在划分...
2017-12-26 22:57:06 584
原创 k-近邻算法及代码
PS:本文中的大部分代码和案例数据来自《机器学习实践》这本书,但是原文中代码几乎没有注解,直接阅读难度很大,我在调试时增加了更详细的注解和步骤上的描述,方便理解。k-近邻算法原理是存在一个训练集,并且训练集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)...
2017-12-25 22:24:03 2540
转载 PIL的基本概念
一篇介绍PythonPIL扩展包的博文,转自http://blog.csdn.net/icamera0/article/details/50647465
2017-12-25 17:51:04 780
原创 Java转Python之并发
对于Java语言我们没得选,并发只能用多线程。但是对于Python语言当我们有的选的时候,先看规模,规模都很大的情况下如果不需要考虑数据共享,尽量用多进程,因为在分布式、微服务流行的年代,通过添加PC的方式进程数的限制不再成为瓶颈,为何不用更稳定的方式呢;如果要考虑数据共享先分析通过数据同步方式能否低消耗的解决,能解决还是用多进程,代价很大就用多线程。当然了运算规模很小,需要快餐式消费,还是多线程开销更小。
2017-12-21 17:13:22 797
原创 Java转Python之面向对象编程
Python的OO和Java的OO跨度不大,最大的区别就是多继承会带来一些变化,但是只要理解了继承的顺序使用多集成时需要注意的地方也很清晰。
2017-12-20 17:55:10 750
原创 OAuth2.0与SSO比较
OAuth2.0网上资料经常拿来跟SSO混为一谈,个人觉得这两个概念一定要区分开,根本是两回事。SSO是为了解决一个用户在鉴权服务器登陆过一次以后,可以在任何应用中畅通无阻,一次登陆,多系统访问,操作用户是实打实的该应用的官方用户,用户的权限和分域以鉴权服务器的存储为准。OAuth2.0解决的是通过令牌获取某个系统的操作权限,因为有clientId的标识,一次登陆只能对该系统生效,第三方应用的操作用户不是鉴权系统的官方用户,授权权限鉴权中心可以做限制。
2017-12-19 21:14:40 16976
原创 Java转Python之函数、模块和异常处理
通过比较Java与Python在模块、函数、异常方面的异同点,方便Java技术人员更快速的适应Python开发
2017-12-16 16:39:48 433 1
原创 索引的类型与详解
首先强调一点,很多人认为索引是DBA那种角色做系统优化的时候才用得到,跟程序员没关系,所以不需要很深刻的掌握,只需要操作数据库时候会用就好。这个观点是大错特错的!索引是一种数据结构,不只是应用于数据库,而数据结构是程序开发人员必须掌握的一门技能,数据结构的学习将会充满整个职业生涯。
2017-12-16 11:35:59 512
原创 ThreadLocal-单例模式下高并发线程安全
为了解决线程安全的问题,我们有3个思路:第一每个线程独享自己的操作对象,也就是多例,多例势必会带来堆内存占用、频繁GC、对象初始化性能开销等待等一些列问题。第二单例模式枷锁,典型的案例是HashTable和HashMap,对读取和变更的操作用synchronized限制起来,保证同一时间只有一个线程可以操作该对象。虽然解决了内存、回收、构造、初始化等问题,但是势必会因为锁竞争带来高并发下性能的下降。第三个思路就是今天重点推出的ThreadLocal。单例模式下通过某种机制维护成员变量不同线程的版本。
2017-12-14 20:57:36 7493 3
原创 排序算法的详解与总结
1 凡是不需要创建临时控件,通过指针变动位置互换就可以完成的排序,空间复杂度最低,只有O(1)2 凡是按照固定的套路元素两两比较直到结束的,时间复杂度最高,是O(n^2),像冒泡排序、简单选择排序就属于这种排序。3 选择排序方法第一优先是业务,也就是稳定性;第二优时间复杂度不能太差,剩下的取时间和空间的平衡。
2017-12-11 18:08:01 408
原创 基数排序
该算法不仅使用在数字排序上,多维度元素的排序只要合理的建模都可以用基数排序,例如扑克牌中花色代表一个维度,个位数代表一个维度,十位数代表一个维度,十位相等比个位;个位相等比花色。
2017-12-11 17:59:29 304
原创 堆排序
将所有序列构建成一个完全二叉树,然后将完全二叉树构造成大堆顶或者小堆顶。以小堆顶为例,要求二叉树中所有节点必须小于自己的左右两个叶子节点,用数学公式表达就是:k(n)<=k(2n+1) && k(n)<=k(2n+2) 当一轮堆排序完成后,堆顶就是该序列最小值。此时将堆顶元素取走,对剩下的n-1个元素再做一轮堆排序,直到全部元素从堆顶吐出。 小堆顶取值,则整个序列是倒序排列;大堆顶取值,则整个序列是正序排列。 核心问题有2个,第一:如何对无序的堆进行排序;第二:吐出堆顶后二叉树被破坏,如果重新构建这个二
2017-12-10 22:51:09 435
原创 归并排序
相邻两个元素二二合并形成一个小序列进行比较,合并一轮后再两个子序列二二合并形成更大的子序列进行排序,中间过程中遇到单个的子序列则等到下一个合并周期,直到所有序列合并成一个总序列,排序后结束。
2017-12-09 19:12:29 224
原创 快速排序详解与实现
选一个序列中的值,所有元素跟这个值做比较,序列被分为两部分,然后对剩下每部分继续做相同操作。 快排随机性很大,跟选取的值有关系,每次选值有可能将序列平均分为两份,也有可能做了无用功选取了最大或者最小的那个值,所以时间消耗上随机性很大.
2017-12-09 12:49:54 348
原创 冒泡排序
序列中相连的元素从左到右两两做比对和位移,[0,1]、[1,2]、[2,3]……[n-1,n],比对完一轮后最大的(或最小的)就落到了队尾,对剩下的n-1个元素继续做相同操作,直到结束。每次比对关注的值越来越大,最终露出水面,所以很形象的称为冒泡排序。时间复杂度方面,冒泡复杂而且稳定,不会因数据的随机性而变化,比对次数=(n-1)+(n-2)+…+(n-n+1)=(n^2)/2-n/2,所以复杂度O(n^2) 稳定性方面我们可以控制冒泡的规则,不打破相等数值原来的相对位置,所以是稳定的. 空间复杂度
2017-12-08 19:19:23 219
原创 简单选择排序和二元选择排序
简单选择排序在整个数组中选取最小值替换队首,再对剩下的n-1个元素选取最小值,依此类推直至结束。二元选择是对简单排序的优化,每次选取最小最大两个极限值分别放在队首和队尾的位置,整个序列两头有序中间无序。二元选择减少了对无序部分的便利次数,复杂度和稳定性跟简单选择排序一样.
2017-12-07 22:55:58 589
原创 希尔插入排序:
按一定跨度d两两进行比对并按序交换位置,进行完一轮比对后跨度缩小再进行下一轮,经过几轮后先将整个序列变成部分有序,然后再进行直接插入排序,减少直接插入排序的开销。希尔算法涉及到2个概念,跨度和深度,跨度一般我们选取总长度n的一半,下一轮再减半,也就是[n/2,n/4,n/8,…],深度根据序列元素的大小自己设置,深度越深希尔算法消耗越大,但是希尔后的列表越趋近有序,直接查插入时消耗越小,极限情况下希尔排序后序列已经完全有序,直接插入消耗约等于零。
2017-12-07 22:28:20 603
原创 直接插入排序
从第一个元素开始,被认为是一个有序的序列,剩下的元素按位置顺序逐一与前面的有序序列进行比对并按序插入到序列中。这样序列首部从小大到序列在增长,序列尾部无序的部分在削减,直到最尾部一个元素比对结束后,整个序列变成有序。
2017-12-07 22:07:45 219
原创 详解Https出现的前因后果
虽然自己不直接从事互联网行业,但是对互联网行业的技术一直没有放松学习,特别是安全方面一直是我薄弱的方面,所以最近踏下心来好好的研究了下互联网安全方面的内容。网上关于SSL、Https的学习资料比较多,有些讲的太宽泛,有些讲的又不容易理解,我以自己的角度和自己的顺序来好好摸清这些内容。 首先澄清3个概念:SSL、TLS、Https。SSL:Secure Sockets Layer,中...
2017-12-05 18:51:46 765
原创 Python验证RSA非对称加密
加密方式从密钥是否相同的角度分为对称加密和非对称加密。对称加密:“加密”和“解密”使用【相同的】密钥。非对称加密:“加密”和“解密”使用【不相同的】密钥。非对称加密服务端生成一对密钥(公钥和私钥),将公钥公开给访问者,要求访问者通过公钥来加密,自己通过私钥来解密。从效率上来讲,对称加密速率快很多,但是密钥的保存和传输的安全性成了很大的风险;而非对称加密只传输公钥,没有私钥是无法解开密文的,所以安全性更高,但是开销更大。现阶段流行的非对称加密是RSA加密,本文主要解释下RSA非对称加密,并用Pyt
2017-12-04 18:27:07 968 2
原创 Java转Python入门之运算与循环
做Java有很多年,做到后面发现Java在后台业务处理、微服务架构、系统框架建设等方面有突出的优点,但是在某些方面确实疲软,例如在研究机器学习时一些发杂的运算和演练用Java写起来费劲甚至基本写不出来,所以需要一种跟精进的脚本语言帮助做运算,所以选择转学Python,第一两条腿走路在研发这行能走得更远,第二利用Python敲开机器学习的大门,开拓自己的视野和事业。
2017-12-03 19:25:51 1076 1
原创 Java基础学Python之环境与语法
做Java有很多年,做到后面发现Java在后台业务处理、微服务架构、系统框架建设等方面有突出的优点,但是在某些方面确实疲软,例如在研究机器学习时一些发杂的运算和演练用Java写起来费劲甚至基本写不出来,所以需要一种跟精进的脚本语言帮助做运算,所以选择转学Python,第一两条腿走路在研发这行能走得更远,第二利用Python敲开机器学习的大门,开拓自己的视野和事业。
2017-12-01 22:24:50 591
ChaosBlade项目外部分享.pdf
2020-07-22
深度学习在线下场景的探索与实践-云栖大会.pdf
2020-07-21
集成智能接入网关APP:优化企业级移动办公网络.pdf
2020-07-21
运营商如何实现大型企业大型企业应用上用云.pdf
2020-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人