- 浏览: 195461 次
-
最新评论
文章列表
防止过拟合以及解决过拟合
- 博客分类:
- 数据挖掘
过拟合:为了得到一致假设而使假设变得过度复杂称为过拟合。“一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),导致泛化能力比较差,显然就过犹不及了。” 这句话很好的诠释了过拟合产生的原因,但我认为这只是一部分原因,另一个原因是模型本身并不能很好地解释(匹配)数据,也就是说观测到的数据并不是由该模型产生的。“统计学家说:我们让数据自己说话。言下之意就是要摒弃先验概率。而贝叶斯支持者则说:数据会有各种各样的偏差,而一个靠谱的先验概率则可以对这些随机噪音做到健壮。事实证明贝叶斯派胜利了,胜利的关键在于所谓先验概率其实也是经验统计的结果。” 事实上贝叶斯本身就是一个基于统计的模型… ...
完美的聚类显然是应该把各种不同的图形放入一类,事实上很难找到完美的聚类方法,各种方法在实际中难免有偏差,所以我们才需要对聚类算法进行评价看聚类效果如何。
法一:purity
purity方法是极为简单的一种聚类评 ...
package cn.xmu.microsoft;
public class T32_1 {
private char[] c = {'A','B','C'};
private int[] total = {3,3,3,3};
static int count = 0;
private void RecursiveSearch(int[] answer,int index,int n){
if(index == n){
for(int i = 0;i < n;i++){
System.out.print(c[answer[i]]);
...
交叉验证通常把数据分为训练机,验证集和测试集。主要分为以下三种:
1).Hold-Out Method
将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.此种方法的好处的处理简单,只需随机把原始数据分为两组即可,这种方法没有达到交叉的思想,随机的将原始数据分组,最后验证集分类准确率的高低与原始数据的分 组有很大的关系,所以这种方法得到的结果其实并不具有说服性.
2).K-fold Cross Validation
将原始数据分成K组(一般是均分),将每个 ...
不平衡分类:
把一个好的电子邮件分成垃圾电子邮件或者垃圾电子邮件分成好的电子邮件,通常前者要严重的多,故要对前者做惩罚。
分来有四种情况:(只考虑正例)
1. GG-把好的分成好的
2. GB-把好的分成坏的
3. BG-把坏的 ...
private static String[] permutation(String orginal){
ArrayList<String> list = new ArrayList<String>();
if(orginal.length() == 1){
return new String[]{orginal};
} else{
for (int i = 0; i < orginal.length(); i++) {
...
归一化 标准化 正则化 区别
- 博客分类:
- 数据挖掘
归一化:一种简化计算的方式,将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量,避免具有不同物理意义和量纲的输入变量不能平等使用。在统计学中,归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。这里需要注意的是归一化需要对训练集和测试集进行归一化,而不是仅仅对训练集进行归一化,如果数据是慢慢加入的,加入一部分就更新一次很浪费时间也很没必要,可以记录下当前数据集的最大值和最小值进行处理,最后能不用归一化的时候尽量不要用。
标准化:数据的标准化是将数据按比例缩放,使之落入一个小的特定区间
正则化:在求解 ...
mapred-site.xml文件:
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>2</value>
<description>The maximumnumber of map tasks that will be run
simultaneously by a task tracker.
</description>
</property>
<property&g ...
解决办法:
job.setMapOutputKeyClass(IntWritable.class);
job.setMapOutputValueClass(Text.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
if (key.getClass() != keyClass) { thrownew IOException(&q ...
HDFS 输入文件避免切分
- 博客分类:
- Hadoop
自定义InputFormat的子类,并把重载方法isSplitable()返回值设为false
增加最小分片的大小,设置成大于要处理文件中最大文件的大小,简单的设成Long.MAX_VALUE即可
一般来说,分片大小计算公式如下:
Max(minimumSize,min(maximumSize,blockSize))
minimumSize < blockSize < maximumSize
如果将分片大小设置成比HDFS块更大,会增加对于map任务来说不是本地文件的块数,也就是说map要跨块读取文 ...
Hadoop 开启debug信息
- 博客分类:
- Hadoop
运行hadoop程序时,有时候你会使用一些System.out.println( )(不推荐使 用,尽量使用Logger)来输出一些信息来查看,调试运行信息,不过结果可能会令你失望,因为你根本就找不到你所希望的信息,但是如果通过web页面去查看job的logger,你会惊讶的发现里面竟有System.out的打印信息。这时只需exportHADOOP_ROOT_LOGGER=DEBUG,console 即可。
reduce任务槽,即集群能够同时运行的reduce任务的最大数量
一般reduce的个数被设为:0.95/1.75 * (number of nodes),这里的nodes不是集群 中TaskTracker的总数,而是所有TaskTracker的reduce任务槽总数
0.95:若某个reduce任务失败,那么JobTracker很快找到另外一台有空闲reduce
任务槽的TaskTracker去执行
1.75:这样可以使得执行速度快的TaskTracker执行更多的reduce任务,使得负 ...
一个对象的引用本质上是一个很强的完整和安全方面约束能力的对象指针。
对象的引用提供两种信息:
1 指向对象实例的信息---数据的指针
2 指向对象类的信息---运行类型和方法表的指针
注意:这些指针尽管存在于java中,但是不能直接操作它。
值传递:传递变量,对象值的拷贝
引用传递:传递地址
值调用:在参数传递过程中,形参和实参占用了两个完全不同的内存空间。形参所存储的内容是实参存储内容的一份拷贝。
引用调用:在参数传递的过程中,形参和实参完全是同一块内存空间,两者不分彼此。
Java是值调用 ,引用传递,见下面例子:
# swap
public voi ...
Java 动态绑定 静态绑定
- 博客分类:
- JAVA
静态绑定:使用编译类型的对象引用
动态绑定:使用运行类型所指的对象
其主要区别是方法是否可以被覆盖(注意和重载的区别),若可以覆盖,则可请求动态绑定。Java语言和虚拟机中,动态绑定是缺省的,否则可使用关键字final声明静态绑定。
除了final使用静态绑定,还有两种特殊情况
1. 类方法(static method,不能被继承,也就不能被覆盖)
2. 包含关键字super的方法(直接显示指出访问其父类的构造函数,方法和变量,也不存在覆盖)
Python 浅拷贝 深拷贝
- 博客分类:
- Python
深拷贝:a -> b copy(a) a -> c content(b) = content(c) && id(b) != id(c)
浅拷贝:a -> b copy(a) a -> b
也就是说深拷贝为新对象制定了独立的新拷贝,逻辑不相关,而只是内容相同,而浅拷贝只是简单的复制引用关系 ...