1. 简介
WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到。同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。
详见 http://www.china-pub.com/computers/common/info.asp?id=29304 2. 数据格式
跟很多电子表格或数据分析软件一样,WEKA所处理的数据集是图1那样的一个二维的表格。 图1 新窗口打开 这里我们要介绍一下WEKA中的术语。表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。 竖行称作一个属性(Attrbute),相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之 间的一种关系(Relation)。图1中一共有14个实例,5个属性,关系名称为“weather”。
WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。图1所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff” 文件,在WEKA安装目录的“data”子目录下可以找到。
代码: % ARFF file for the weather data with some numric features % @relation weather@attribute outlook {sunny, overcast, rainy} @attribute temperature real @attribute humidity real @attribute windy {TRUE, FALSE} @attribute play {yes, no}
@data % % 14 instances % sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes rainy,70,96,FALSE,yes rainy,68,80,FALSE,yes rainy,65,70,TRUE,no overcast,64,65,TRUE,yes sunny,72,95,FALSE,no sunny,69,70,FALSE,yes rainy,75,80,FALSE,yes sunny,75,70,TRUE,yes overcast,72,90,TRUE,yes overcast,81,75,FALSE,yes rainy,71,91,TRUE,no
需要注意的是,在Windows记事本打开这个文件时,可能会因为回车符定义不一致而导致分行不正常。推荐使用UltraEdit这样的字符编辑软件察看ARFF文件的内容。
下面我们来对这个文件的内容进行说明。 识别ARFF文件的重要依据是分行,因此不能在这种文件里随意的断行。空行(或全是空格的行)将被忽略。 以“%”开始的行是注释,WEKA将忽略这些行。如果你看到的“weather.arff”文件多了或少了些“%”开始的行,是没有影响的。 除去注释后,整个ARFF文件可以分为两个部分。第一部分给出了头信息(Head information),包括了对关系的声明和对属性的声明。第二部分给出了数据信息(Data information),即数据集中给出的数据。从“@data”标记开始,后面的就是数据信息了。
关系声明 关系名称在ARFF文件的第一个有效行来定义,格式为 @relation <relation-name> <relation-name>是一个字符串。如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。
属性声明 属性声明用一列以“@attribute”开头的语句表示。数据集中的每一个属性都有它对应的“@attribute”语句,来定义它的属性名称和数据类型。 这些声明语句的顺序很重要。首先它表明了该项属性在数据部分的位置。例如,“humidity”是第三个被声明的属性,这说明数据部分那些被逗号 分开的列中,第三列数据 85 90 86 96 … 是相应的“humidity”值。其次,最后一个声明的属性被称作class属性,在分类或回归任务中,它是默认的目标变量。 属性声明的格式为 @attribute <attribute-name> <datatype> 其中<attribute-name>是必须以字母开头的字符串。和关系名称一样,如果这个字符串包含空格,它必须加上引号。 WEKA支持的<datatype>有四种,分别是 numeric————————-数值型 <nominal-specification>—–分类(nominal)型 string—————————-字符串型 date [<date-format>]——–日期和时间型 其中<nominal-specification> [...]]]>
里面推荐很多书的确非常经典,其中我看过的有两本,1. Stanford的那本《Introduction to Information Retrieval》 2. Bishop, 《Pattern Recognition and Machine Learning》,非常值得一读,网上都能找到电子版的,如果实在找不到给我留言。《Introduction to Information Retrieval》在我以前的post中已经给出下载链接,另外一本电子太大没地方能上传。
———————————————————————————————–
我经常在 TopLanguage 讨论组上推荐一些书籍,也经常问里面的牛人们搜罗一些有关的资料,人工智能、机器学习、自然语言处理、知识发现(特别地,数据挖掘)、信息检索 这些无疑是 CS 领域最好玩的分支了(也是互相紧密联系的),这里将最近有关机器学习和人工智能相关的一些学习资源归一个类:
首先是两个非常棒的 Wikipedia 条目,我也算是 wikipedia 的重度用户了,学习一门东西的时候常常发现是始于 wikipedia 中间经过若干次 google ,然后止于某一本或几本著作。
第一个是“人工智能的历史”(History of Artificial Intelligence),我在讨论组上写道:
而今天看到的这篇文章是我在 wikipedia 浏览至今觉得最好的。文章名为《人工智能的历史》,顺着 AI 发展时间线娓娓道来,中间穿插无数牛人故事,且一波三折大气磅礴,可谓”事实比想象更令人惊讶”。人工智能始于哲学思辨,中间经历了一个没有心理学(尤其是认知神经科学的)的帮助的阶段,仅通过牛人对人类思维的外在表现的归纳、内省,以及数学工具进行探索,其间最令人激动的是 Herbert Simon (决策理论之父,诺奖,跨领域牛人)写的一个自动证明机,证明了罗素的数学原理中的二十几个定理,其中有一个定理比原书中的还要优雅,Simon 的程序用的是启发式搜索,因为公理系统中的证明可以简化为从条件到结论的树状搜索(但由于组合爆炸,所以必须使用启发式剪枝)。后来 Simon 又写了 GPS (General Problem Solver),据说能解决一些能良好形式化的问题,如汉诺塔。但说到底 Simon 的研究毕竟只触及了人类思维的一个很小很小的方面 —— Formal [...]]]>
梯度与方向导数
Incoming search terms for the article:方向导数 (1)方向导数与梯度 (1)Related PostsNo Related Post]]>import com.aliasi.matrix.SparseFloatVector;import com.aliasi.matrix.Vector;import com.aliasi.symbol.MapSymbolTable;import com.aliasi.symbol.SymbolTable;import com.aliasi.tokenizer.IndoEuropeanTokenizerFactory;import com.aliasi.tokenizer.TokenizerFactory;import com.aliasi.tokenizer.TokenFeatureExtractor;import java.util.HashMap;import java.util.Map;
public class ExtractFeatures { public static Vector[] featureVectors(String[] texts, SymbolTable symbolTable) { Vector[] vectors = new Vector[texts.length]; TokenizerFactory [...]]]>
http://ourworld.compuserve.com/homepages/jsuebersax/faq.htm
http://en.wikipedia.org/wiki/Latent_class_model
http://en.wikipedia.org/wiki/Latent_variable_model
Related Posts【转载】Weka入门教程机器学习与人工智能学习资源导引Pattern Classification(模式分类) 下载地址What is SVM?Karush-Kuhn-Tucker 最优化条件 (KKT 条件,SVM中需要到)–SVM学习1]]>http://en.wikipedia.org/wiki/Generative_model
http://workingmidi.blogspot.com/2007/06/generative-model.html
http://blog.csdn.net/hitmonkey/archive/2008/05/15/2448906.aspx
以前对这两个概念非常模糊,今天从网上找到了关于这两个概念的两种风格的解释,比较一下! 第一种风格:
For a data sample: x and it class lable:,y, 要检测图像中的淋巴结,有很多positive,很多的negetive。 Discrimitive model: p(y|x), 给定x,算y。
Generative model:和 discrimitive model 的区别: Generative model focus 在自己的inclass 本身,不care 到底 decision boundary 在哪。 Generative model 实际上带的information 要比discrimitive model rich, 因为假设有generative model, 两类的,就完全得到了p(x|y),而discrimitive model 只care decision boundary。这里说的generative model 和 discrimitive model,在行业里,这个说法是通用的。 由Generative [...]]]>
比如中国移动、中国联通、中国电信、中国网通的手机编辑短信” 1″发送到”10699989″,即向残疾人福利基金会捐款1元人民币;编辑短信” 2″发送到”10699989″,即向残疾人福利基金会捐款2元人民币,以此类推。
编辑短信”MY5″ 或”MY10″ 或”MY15″发送到”1069999303″,即向中国红基会”红十字天使计划”每月捐款5元或10元或15元。 以上是各基金会的号码:
10699989 中国残疾人福利基金会
1069999301 现为四川汶川大地震灾区捐款的手机号
106999930302 捐天使阳光基金(救助贫困先天性心脏病儿童)
106999930303 捐嫣然天使基金(救助贫困唇裂儿童)
106999930304 捐天使之爱基金(救助贫困脑瘫儿童)
106999930305 捐天使回声基金(救助贫困失聪儿童)
106999930306 捐建博爱小学
106999930307 捐温暖中国基金(救助贫困肿瘤患者)
106999930308 捐建博爱卫生院(站)
106999930309 捐助乡村医生培训
106999930310 捐玉米爱心基金
106999930311 捐建红十字书库
106999930312 合生元中国母婴救助基金
106999930313 捐博客基金
1069999305 中华骨髓库
1069999304 心灵阳光工程 官方网站
1069999309 李连杰的壹基金 官方网站
—————————————————————————
感觉短信比较方便,试试便知,尽一份绵薄之力。这次让给我的感觉这事怎么就发生了呢,有点像被打蒙了的感觉,最近几年,越来越让人感觉到大自然的威力了。希望救援顺利, 灾区同胞挺住。
建议移动能把捐款手机号码个数在网上公布出来,让灾区同胞们看看,有这么多五湖四海的兄弟姐妹非常关心你们。
Related Posts四川汶川地震 各地伤亡汇总(实时更新)通过谷歌地图查看:四川大地震震中汶川在中国的方位及周围地形堰塞湖地震逃生十大法则 + 捐款办法]]>所谓 Karush-Kuhn-Tucker 最优化条件,就是指上式的最小点 x* 必须满足下面的条件:
KKT最优化条件是Karush[1939]以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker 发表之后才逐渐受到重视,因此许多书只记载成「Kuhn-Tucker 最优化条件 (Kuhn-Tucker conditions)」。
KKT条件第一项是说最优点必须满足所有等式及不等式限制条件,也就是说最优点必须是一个可行解,这一点自然是毋庸置疑的。第二项表明在最优点 x*, ∇f 必須是 ∇hj 和 ∇gk 的线性組合,和都叫作拉格朗日乘子。所不同的是不等式限制条件有方向性,所以每一个 kµ都必须大於或等於零,而等式限制条件没有方向性,所 以 jλ没有符号的限制,其符号要视等式限制条件的写法而定
备注:该条件是SVM中需要到,处理不等式约束,把它变换成一组等式约束。
SVM推倒在Introduction to data mining 这本书中推倒比较清晰(非理论证明),对数学功底不深者比较容易理解。
从今天开始,发一系列我学习SVM的文章。不完全从理论上,更多从实践上去理解,以及如何根据实际需要简单修改SVM。太纯理论我搞不懂,也懒得去搞,只想走一条中间道路,应用型研究。
能真的搞懂SVM一定能coding出来,但能coding出SVM来的就不一定真的搞懂了。
Incoming search terms for the article:svm kkt (7)kkt条件 (6)svm KKT 条件 (2)kkt条件 svm (2)优化理论中的KKT条件 (2)Related PostsWhat is SVM?【转载】Weka入门教程机器学习与人工智能学习资源导引What is Latent Class Analysis?Pattern Classification(模式分类) 下载地址]]>