乍一看题目,使用”meka“实现分类器,是不是笔者打错了啊,应该是weka啊。其实不然,这世上还真有一个叫meka的包,并且他还跟weka算是亲戚关系。只不过,这个meka是一个专门用来解决多标签分类问题的包,并且是基于weka的,可以算作是weka的一个扩展。

那好,什么是多标签分类呢?我们先来看一个示例:如果我有一篇文章,我要推断它是不是“体育”类新闻,那么分类标签就只有“是”或者“不是”,这种问题就是经典的二分类(binary classifier)问题。好,再复杂一点,如果我们要判断这篇文章是属于“体育”、“财经”、“社会”中的哪一类?那么这个问题就变成了一个多类分类问题(mul[……]

Read more

以前写过一篇博文是利用weka来实现多项式朴素贝叶斯增量学习。这次利用python中的sklearn学习工具来实现。其实个人感觉像机器学习,数据处理这种活本来就应该让我们高雅而优美的Python来实现,Java你瞎凑什么热闹啊~~

与weka的实现相比,sklearn果然还是继承了Python简洁优雅的传统,实现起来十分方便。如何判断sklearn中分类器是否支持增量学习(incremental learning & online learning)呢?很简单,只需要查阅sklearn文档,如果该分类器存在partial_fit()方法,即说明它支持增量学习。
比如我们的多项式朴素贝叶[……]

Read more

一直在用jetbrains系列的IDE开发,感觉用他们家的IDE跟集邮似的,越玩越上瘾。
先来一张我的解锁图:

去JetBrains官网上一看,他们家的触手已经伸向各大主流语言了。。。
jet

看来以后得跟他们家过一辈子了。。。。
文末来个小福利吧,JetBrains系列破解连接:地址

本文打算长期更新一些有意思的python代码片段,就当做是学习笔记。

1.python多线程死锁

import time,threading

locka = threading.Lock()
lockb = threading.Lock()

def fa():
    print('a')
def fb():
    print('b')

def fab():
    locka.acquire()
    try:
        fa()
        time.sleep(1)
        lockb.acquire()
        try:
            fb()
        finally:
            lockb.release()
    finally:
        locka.release()
def fba():
    lockb.acquire()
    try:
        fb()
        time.sleep(1)
        locka.acquire()
        try:
            fa()
        finally:
            locka.release()
    finally:
        lockb.release()

t1 = threading.Thread(target=fab)
t2 = threading.Thread(target=fba)
t1.start()
t2.start()
t1.join()
t2.join()
print('end')

2.协程coroutine(1)

来源:廖雪峰

def consumer():
    r = ''
    while True:

        n = yield r
        if not n:
            return
        print('[CONSUMER] Consuming %s...' % n)
        r = '200 OK'

def produce(c):
    c.send(None)
    n = 0
    while n < 5:
        n = n + 1
        print('[PRODUCER] Producing %s...' % n)
        r = c.send(n)
        print('[PRODUCER] Consumer return: %s' % r)
    c.close()

c = consumer()
produce(c)

运行结果为:

[PRODUCER] Producing 1...
[CONSUMER] Consuming 1...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 2...
[CONSUMER] Consuming 2...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 3...
[CONSUMER] Consuming 3...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 4...
[CONSUMER] Consuming 4...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 5...
[CONSUMER] Consuming 5...
[PRODUCER] Consumer return: 200 OK

解释:
yield表达式本身没有返回值,它的返回值需要等到下次调用generator函数时,由send(args)函数的参数赋予。

3.协程coroutine(2)

来源:http://blog.csdn.net/gvfdbdf/article/detai[……]

Read more

同步异步,阻塞非阻塞这一直是一个很难理解的概念。以前也看过一些资料,但现在回想起来还是一片空白。所以整理一篇文章来记录下,以期备忘。

网上看到一句话,还是挺形象的:
“阻塞和非阻塞是等待方式的区别,比如你去取钱,等待过程中,你一直在那边等,什么事情都做不了;而非阻塞是先给一个结果“可能要花点时间,你去抽根烟吧”。而同步和异步是通知方式的差别,同步就是,你抽烟过程中,还不断的问“钱出来了吗?钱出来了么?”,是你主动去问的。而异步就是,你取钱的时候,柜员给了你一张小纸条说“钱好了叫你”,注意,是柜员通知你。综述,阻塞是同步的,异步一定是非阻塞的。”

知乎:
不熟悉操作系统的开发人员[……]

Read more

GitHub API其实是一座宝藏,它拥有着海量项目以及开发者的各类信息,可以作为社交编程以及经验软件工程课题的数据载体。

本次教程较大家如何使用scrapy来爬取GitHub API,抓取我们所需要的特定信息。GitHub API 是GitHub基于OAuth2协议开放出来的数据获取接口,我们能够在GitHub API上获取各类信息,比如一个项目的commit,issue,pull request;一个用户的粉丝,关注,提交活动,评论等等。GitHub API 有着详细的官方文档教程,上面各类数据的获取接口地址,以及一些过滤参数等。本教程将以爬取rails的issue信息为例,教大家如[……]

Read more

多元混合效应逻辑回归(Mixed Effects Logistic Regression)是什么:
混合效应逻辑回归是一种二分类模型,其输出是一组预测变量(自变量)的线性组合,但是样本不是简单地独立的,而是集群式分布,也即某个群体之间存在内部关联。
(Mixed effects logistic regression is used to model binary outcome variables, in which the log odds of the outcomes are modeled as a linear combination of the predictor vari[……]

Read more

我相信每个程序员心里都有一个黑客梦,我也不例外。本科四年,舍友malash大神天天遨游在学校的各种服务器之间,xss,sql注入,shell提权信手拈来,请允许我再次献上我的膝盖。
好了,废话不多说。最近再看一些web安全相关的东东,对sql注入的原理也有了更为深刻的理解,但纸上得来终觉浅,我的四十米大刀早已饥渴难耐了。
0x00 寻找猎物
其实这个猎物我心里早就有了,这次就是拿他来练手。鉴于和谐原因,暂不公布目标。

0x01 先来点小测试
本来还想先从找出管理员登录页面开始,都已经下好了路径扫描工具。但是当时耶稣的光芒照亮了我,手抖了一下,在目标域名后接了个‘/admin’,就[……]

Read more

最近开发一直用的是thinkphp5.0 rc4,个人感觉相较于tp3.x, tp5.0的进步是巨大的。
开发使用框架时,有时候需要根据自己的业务逻辑来框架源码做一些小改动,本文记录我在开发过程中对tp5.0 rc4做出修改的地方,如果更新框架,就需要对这些地方重新修改,特此MARK!

1.Db类中使用分页输出数据的page()方法。
改动缘由:跟前台程序对接的时候,需要根据前台传入的$page变量来选择输出.例如page($page,10),代表按10条数据分页,取第$page页。
在开发的时候我发现$page传入0或者1,生成的sql都是一样的,取到的数据当然也一样。可能tp作[……]

Read more