代码改变世界

随笔档案-2013年09月

ArrayList序列化

2013-09-25 15:11 by Loull, 1299 阅读, 收藏, 编辑
摘要: ArrayList源代码中的private transient E[] elementData; 声明为transient,为什么还可以序列化成功呢?ArrayList重写了private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ int expectedModCount = modCount; // Write out element count, and any hidden stuff s.defaultWriteObject(); ... 阅读全文

Java序列化总结

2013-09-25 15:05 by Loull, 461 阅读, 收藏, 编辑
摘要: 什么是序列化? 序列化是将对象的状态信息转化为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后可以通过存储区中读取或反序列化对象的状态重新创建对象。 为什么要序列化? 有两个最重要的原因促使对序列化的使用:一个原因是将对象的状态保持在存储媒体中,以便可以在以后重新创建精确的副本;另一个原因是通过值将对象从一个应用程序域发送到另一个应用程序域中。例如,在网络中传输的数据都必须要序列化。 Java中的序列化 Java中的序列化机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输或者持久化存储到数据库或文件系统中,然后... 阅读全文

Approximate Inference 近似推断

2013-09-16 23:08 by Loull, 1731 阅读, 收藏, 编辑
摘要: 引入 统计推断的核心任务,是观察到一些X(可见变量戒可观察变量)之后计算隐变量Z的后验分布p(Z|X),以及在这个后验分布下计算我们所需要的函数的期望。比如,讲EM时,我们曾计算过对数似然函数在隐变量后验分布下的期望(公式9.30),作为EM中的E步。 但我们都知道,求期望要用到求和戒积分运算,很多情况下,计算它们往往不那么简单。 首先,我们积分所涉及的分布可能很复杂,不像混合高斯做EM时每步迭代都有解析解;其次,我们要积分的变量空间可能维度很高,这样就把我们做数值积分的路给堵死了。因为这两个原因,我们迚行精确计算往往是不可行的。 为了解决这一问题,我们需要引入一些近似计算方法。 近... 阅读全文

Approximate Inference

2013-09-16 22:32 by Loull, 596 阅读, 收藏, 编辑
摘要: 1. Approximation Probabilistic model 中的一个 central task :给定一组observation X 后,计算latent variables Z 的后验概率P( Z | X)。以及一些expectation with respect to P(Z| X)。很多情况下P( Z | X)是analytically intractable 的。这就需要有approximation 方法。 Latent variable :只要没有观察到的都归为 latent variable ,比如在 Bayesian 中的parameter(它们是random .. 阅读全文

数据的标准化

2013-09-11 10:03 by Loull, 354 阅读, 收藏, 编辑
摘要: 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。 其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:min-max标准化(Min-max normalization) 也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下: 其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化... 阅读全文

libsvm使用

2013-09-09 01:22 by Loull, 321 阅读, 收藏, 编辑
摘要: 先挖个坑,有空重写svm_scale, svm_train, svm_predict几个代码,给的实在写的不敢恭维package org.ml.svm;import java.io.File;import java.io.FileDescriptor;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintStream;public class SVMTest { public static void main(String[] args) throws IOException ... 阅读全文

【java】System.out重定向到文件,并重定向会console上

2013-09-09 01:20 by Loull, 1675 阅读, 收藏, 编辑
摘要: 重定向到文件:System.setOut(new PrintStream(new File("data\\train.1.scale")));重定向回console://把输出重定向会console上System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out))); 阅读全文

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别

2013-09-08 21:45 by Loull, 321 阅读, 收藏, 编辑
摘要: 编译型和解释型我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler)。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Object file)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已. 阅读全文

【转】 Oracle 用户权限管理方法

2013-09-07 00:32 by Loull, 214 阅读, 收藏, 编辑
摘要: sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二、登陆 sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus s 阅读全文

oracle实例内存(SGA和PGA)调整

2013-09-07 00:21 by Loull, 3026 阅读, 收藏, 编辑
摘要: 修改oracle内存占用 >show parameter sga; (查看内存占用情况) NAME TYPE VALUE ------------------------------------ ----------- ------------- lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 12000M sga_max_size big integer 12000M >alter system set sga_max_size=10000m scope=spfile; > 阅读全文

oracle修改内存使用和性能调节,SGA

2013-09-07 00:01 by Loull, 939 阅读, 收藏, 编辑
摘要: 最近装了oracle,电脑实在太卡了,想要限制内存使用,结果碰到一系列问题:要用SYS帐户登录,修改SGA使用,结果不知道SYS密码。用SYSTEM帐户权限不够。试了几条语句后,有几个文件修改不了,怀疑是不是自己系统用户的权限不够,然后给系统的帐户提权限。本身已经是管理员权限了,想要提升为传说中的超级管理员,结果试了几种方法,都没效果。后来在网上找了资料,找到了可行的方案。sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普 阅读全文

下星期计划——9.7~9.13

2013-09-06 21:10 by Loull, 243 阅读, 收藏, 编辑
摘要: 9.7svm调参review9.8推荐系统论文ranclus同学过来9.9~9.13工程 阅读全文

医疗数据分析——过高费用的异常检测

2013-09-06 21:07 by Loull, 506 阅读, 收藏, 编辑
摘要: 一、提取特征和处理1、每个病记录的特征 总费用医疗费用 自费费用 报销金额 报销自费比2、人的特征 年龄层次:儿童、年轻人、中年人、老年人 性别3、特征处理 标准版二、实验三、评估 阅读全文

Groovy介绍

2013-09-05 15:22 by Loull, 1128 阅读, 收藏, 编辑
摘要: 关于 Groovy 这一节将学习 Groovy 的基础知识:它是什么,它与 Java 语言和 JVM 的关系,以及编写 Groovy 代码的一些要点。 一、什么是 Groovy? Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程, 阅读全文

Java 7代码层面上的更新

2013-09-05 13:51 by Loull, 376 阅读, 收藏, 编辑
摘要: Java 7已经完成的7大新功能: 1 对集合类的语言支持; 2 自动资源管理; 3 改进的通用实例创建类型推断; 4 数字字面量下划线支持; 5 switch中使用string; 6 二进制字面量; 7 简化可变参数方法调用。 下面我们来仔细看一下这7大新功能: 1 对集合类的语言支持 Java将... 阅读全文

Java陷阱之assert关键字

2013-09-05 13:19 by Loull, 834 阅读, 收藏, 编辑
摘要: Java陷阱之assert关键字一、概述在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。二、语法在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都 将忽略!),如果要开启断言检查,则需要用开关-enableassertions或-ea来开启。assert关键字语法很简单,有两种用法:1、assert 如果为true,则程序继续执行。如果为false,则程序抛出Asser 阅读全文

支持向量机(SVM)、支持向量回归(SVR)

2013-09-04 15:29 by Loull, 4003 阅读, 收藏, 编辑
摘要: 1、支持向量机( SVM )是一种比较好的实现了结构风险最小化思想的方法。它的机器学习策略是结构风险最小化原则 为了最小化期望风险,应同时最小化经验风险和置信范围)支持向量机方法的基本思想: ( 1 )它是专门针对有限样本情况的学习机器,实现的是结构风险最小化:在对给定的数据逼近的精度与逼近函数的复杂性之间寻求折衷,以期获得最好的推广能力;( 2 )它最终解决的是一个凸二次规划问题,从理论上说,得到的将是全局最优解,解决了在神经网络方法中无法避免的局部极值问题;( 3 )它将实际问题通过非线性变换转换到高维的特征空间,在高维空间中构造线性决策函数来实现原空间中的非线性决策函数,巧妙地解决了维数 阅读全文

libSVM简介及核函数模型选择

2013-09-04 15:27 by Loull, 1349 阅读, 收藏, 编辑
摘要: 1.libSVM简介训练模型的结构体structsvm_problem//储存参加计算的所有样本{intl;//记录样本总数double*y;//指向样本类别的组数structsvm_node**x;//数据样本};当样本类别事先已经被告知时,可以通过数字来给样本数据进行标识(如果是两类通常以1与-1来表示)。如果不清楚样本类别可以用样本个数编号来设置,这时候分类的准确率也就无法判定了。数据样本是一个二维数组,其中每个单元格储存的是一个svm_node,y与样本数据的对应关系为:数据节点的结构体structsvm_node//储存单一向量的单个特征{ intindex;//索引 doublev 阅读全文

支持向量机:Numerical Optimization,SMO算法

2013-09-04 12:47 by Loull, 617 阅读, 收藏, 编辑
摘要: http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html另外一篇:http://www.cnblogs.com/vivounicorn/archive/2011/06/01/2067496.html11 SMO优化算法(Sequential minimal optimization)SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。关于SMO最好的资料就是他本人写的 《Sequential Minimal Op 阅读全文

SVM计算过程,对偶形式,核函数

2013-09-04 12:36 by Loull, 2381 阅读, 收藏, 编辑
摘要: SVM是一个分类方法,用w^X+b定义分类函数, 于是求w、b,为寻最大间隔,引出1/2||w||^2,继而引入拉格朗日因子,化为对单一因数对偶变量a的求解(求解过程中会涉及到一系列最优化或凸二 次规划等问题),如此,求w.b与求a等价,而求a的解法即为SMO,至于核函数,是为处理非线性情况,若直接映射到高维计算恐维度爆炸,故在低维计算, 等效高维表现。一、原问题和对偶形式优化目标:到这个形式以后,就可以很明显地看出来,它是一个凸优化问题,或者更具体地说,它是一个二次优化问题——目标函数是二次的,约束条件是线性的。这个问题可以用任何现成的 QP (Quadratic Programming) 阅读全文

SVM入门——线性分类器的求解,核函数

2013-09-04 10:54 by Loull, 3296 阅读, 收藏, 编辑
摘要: 一、问题的描述从最一般的定义上说,一个求最小值的问题就是一个优化问题(也叫寻优问题,更文绉绉的叫法是规划——Programming),它同样由两部分组成,目标函数和约束条件,可以用下面的式子表示:(式1)约束条件用函数c来表示,就是constrain的意思啦。你可以看出一共有p+q个约束条件,其中p个是不等式约束,q个等式约束。关于这个式子可以这样来理解:式中的x是自变量,但不限定它的维数必须为1(视乎你解决的问题空间维数,对我们的文本分类来说,那可是成千上万啊)。要求f(x)在哪一点上取得最小值(反倒不太关心这个最小值到底是多少,关键是哪一点),但不是在整个空间里找,而是在约束条件所划定的一 阅读全文

【转】SVM入门(一)SVM的八股简介

2013-09-04 10:23 by Loull, 393 阅读, 收藏, 编辑
摘要: (一)SVM的八股简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力)。以上是经常被有关SVM 的学术文献引用的介绍,有点八股,我来逐一分解并解释一下。Vapni 阅读全文

【SVM】A Practical Guide to Support Vector Classi cation

2013-09-03 19:16 by Loull, 316 阅读, 收藏, 编辑
摘要: 零、简介 一般认为,SVM比神经网络要简单。 优化目标: 函数phi(x)会把训练样本x映射到高维(或无穷维)的空间中。 基本的核: 一、实际运用 一般流程: 二、数据处理2.1 离散特征 建议用m个数字表示某个离散特征的m个可取的值。m个数字中只有一个取1,其他的都取0。 比如{红,黄,蓝}分别表示为(1,0,0), (0,1,0), (0,0,1)2.2 规格化 核的值通常与特征向量的内积有关。 训练集和测试集必须用相同的规格化方法。三、模型选择3.1 优先选择RBF核 1、它能把映射到高维空间,处理线性不可分的情况。 2、超参数的数量影响计算的复杂度,多项式... 阅读全文

【weka】分类,cross-validation,数据

2013-09-03 18:54 by Loull, 4617 阅读, 收藏, 编辑
摘要: 一、分类classifier 如何利用weka里的类对数据集进行分类,要对数据集进行分类,第一步要指定数据集中哪一列做为类别,如果这一步忘记了(事实上经常会忘记)会出现“Class index is negative (not set)!”这个错误,设置某一列为类别用Instances类的成员方法setClassIndex,要设置最后一列为类别则可以用Instances类的numAttributes()成员方法得到属性的个数再减1。 然后选择分类器,比较常用的分类器有J48,NaiveBayes,SMO(LibSVM有Java版的,可以在weka中使用,但要设置路径),训练分类器使用J48.. 阅读全文

几个随机算法

2013-09-02 22:02 by Loull, 1683 阅读, 收藏, 编辑
摘要: 在日常工作中,经常需要使用随机算法。比如面对大量的数据, 需要从其中随机选取一些数据来做分析。 又如在得到某个分数后, 为了增加随机性, 需要在该分数的基础上, 添加一个扰动, 并使该扰动服从特定的概率分布。本文主要从这两个方面出发, 介绍一些算法, 供大家参考。首先假设我们有一个使用的随机函数float frand(), 返回值在(0, 1)上均匀分布。大多数的程序语言库提供这样的函数。 在其他的语言如C/C++中, 可以通过间接方法得到。如 frand()= ((float)rand() ) / RAND_MAX; 1, 随机选取数据假设我们有一个集合A(a_1,…,a_n), 对于数m, 阅读全文

经典的机器学习方面源代码库

2013-09-01 19:58 by Loull, 305 阅读, 收藏, 编辑
摘要: 编程语言:搞实验个人认为当然matlab最灵活了(但是正版很贵),但是更为前途的是 python(numpy+scipy+matplotlib)和C/C++,这样组合既可搞研究,也可搞商业开发,易用性不比matlab差,功能组合 更为强大,个人认为,当然R和java也不错.1.机器学习开源软件网(收录了各种机器学习的各种编程语言学术与商业的开源软件)http://mloss.org2 偶尔找到的机器学习资源网:(也非常全,1和2基本收录了所有ML的经典开源软件了)http://www.dmoz.org/Computers/Artificial_Intelligence/Machine_Lear 阅读全文

机器学习相关资源

2013-09-01 19:57 by Loull, 543 阅读, 收藏, 编辑
摘要: 一、引言在机器学习相关领域研究中,不可避免的要涉及各种各样的算法,包括数据预处理、算法模型生成、算法模型集成、算法评估等。对于研究人员而言,每一个算法都亲力亲为实现几乎是不可能的,而且会造成非常巨大的时间浪费。此外,在算法实验中,数据本身占据着非常重要的地位,在公认的数据集上取得较好的实验效果,是研究成果得到承认的前提之一。基于以上的两点原因,本文对目前可以使用的主要机器学习工具包以及数据集进行整理,作为之后研究的基础。必须说明的是,本文整理的内容必然有失完整,后续期待着进一步的完善。二、必备的经典工具包2.1MATLAB毫无疑问,MATLAB是机器学习算法研究中最为核心的工具,其中包含的大量 阅读全文

9月份计划

2013-09-01 19:51 by Loull, 223 阅读, 收藏, 编辑
摘要: 给自己一个计划,注重惯性的力量,但适时跳出不良循环看完几本书:python经济机器学习实战机器学习论文:Graphical Models, Exponential Families, and variational inferencepluskids的博客项目:数据分析实验:LR,SVM,BPKNN,K-means决策树 阅读全文
点击右上角即可分享
微信分享提示