最近处理决策树输入数据的时候遇到一个问题:如果输入文件为一个文件,如何分为训练样本和测试样本呢?而且一般是训练数据多于测试数据。下面就说下我的实现思路:
假如以7:3的概率分割输入文件,那么可以使用一个随机数。随机产生一个0~9的随机数,判断此数是否小于7(此处数值可以根据训练数据和测试数据的比值进行设置),若小于则应该把此行输入数据归为训练数据,否则归为测试数据;
下面是java实现代码:
package org.fansy.filesplit.random;
import java.io.*;
import java.util.*;
public class SplitFile {
/**
* 随机把一个文件以行为单位按照一定概率分为两个
* 主要是为了一个做训练样本,一个做测试样本;
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String sourceStr="/home/fansy/data/forest/car.txt";
String des1Str="/home/fansy/data/forest/car_train.txt";
String des2Str="/home/fansy/data/forest/car_test.txt";
File source =new File(sourceStr);
File des1=new File(des1Str);
File des2=new File(des2Str);
if(!source.exists()){
System.out.println("source file does not exist");
return ;
}
exist(des1);
exist(des2);
FileWriter des1W=new FileWriter(des1,true);
FileWriter des2W=new FileWriter(des2,true);
// read source file and split it into two files
FileReader fileReader =new FileReader(source);
BufferedReader bf=new BufferedReader(fileReader);
String line=null;
Random r=new Random();
int temp=0;
while((line=bf.readLine())!=null){
temp=Math.abs(r.nextInt())%10;
if(temp<7){ // '7' can be changed in order to set the probability of train data and test data
des1W.append(line+"\n");
}else{
des2W.append(line+"\n");
}
}
bf.close();
fileReader.close();
des1W.close();
des2W.close();
System.out.println("split file done ...");
}
private static void exist(File f){
if(f.exists()){
f.delete();
boolean flag=false;
try {
flag = f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("create file:"+f.getName()+" :"+flag);
}
}
}
分享,快乐,成长
转载请注明出处:http://blog.csdn.net/fansy1990
分享到:
相关推荐
一种基于肤色分割、区域分析和模板分布的彩色图像人脸检测算法.首先对输入的彩色图像利用混合高斯模型和亮度模型进行分割,然后根据人脸五官的结构特征对得到的区域进一步分析处理,获得所有可能的候选人脸.接着构造了...
通过统计不同阶段的概率,从而达到不同的概率密度曲线,进而进行分割。
重新实现“用于模糊图像分割的概率U-Net”中描述的模型
通过利用图像的灰度直方图信息,近似拟合灰度的概率分布函数,然后设定目标函数,目标函数最大化对应的阈值就是最佳阈值,相比传统算法,Tsallis熵的阈值分割方法,能够克服一定的噪声干扰,同时避免了单阈值的问题...
即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束.Comaniciu等人[3][4]把Mean Shift成功的运用的特征空间的分析,在图像平滑和图像分割中Mean Shift都得到了很...
首先由全局高斯模型的全局灰度拟合力和局部高斯模型的局部灰度拟合力的一个线性组合来构造水平集演化力,然后引入这两个拟合力的动态权重以达到该模型的灵活性,实验结果表明,该模型能分割灰度不均的图像,且允许...
基于参数化模型的图像分割算法对复杂的医学图像分割精度较低,提出一种基于改进粗糙集概率模型的鲁棒医学图像分割算法。首先,将粗糙集的上下逼近与概率边界区引入最大期望算法中,表征每个类簇;然后,将图像的灰度...
实验结果表明,基于遗传算法的二维最大模糊熵阈值分割法具有较好的分割性能和较快的分割速度,对噪声有一定的抑制能力。另外,针对多目标的复杂图像分割问题,本文聚用了一种三类阈值分割法,该方法将图像分为暗区、...
在进行图像区域分割时, 为了减少过度分割现象, 可利用K 均值算法简单、快速并且能够有效地处理大数据库的优点及概率松弛算法并行快速且考虑空间信息的优点, 同时考虑灰度信息和空间信息将两种方法相结合应用于图像的...
在对已有算法分析的基础上,提出基于古典概率理论的图像生成模型,重点介绍区域合并思想与统计理论相结合的合并预测准则,该准则是逐步松弛的,确保在无像素遗漏的同时分割的精度。算法不但考虑了像素的相似性,还考虑了...
这个程序能产生一定的概率的随机数。 在小样本的情况下是看不出来的,但是样本个数到一定程度时,会发现完全符合概率的分布。
介绍了基于MRF(即马尔可夫随机场)的相关背景知识,并给出了一种基于MRF结合最大后验概率估计的图像分割方法
该合并准则将超像素分割结果作为区域合并的基本单元,利用基本单元的颜色相似性、空间距离大小和统计特性进行区域合并,以解决超像素图像分割中存在的过分割问题。仿真实验结果表明,该方法能有效地改善超像素过分割...
提出了一种基于词典词语量化关系的句子间相关性度量方法,并建立了一个计算句子之间的间隔点分隔值的数学模型,以实现基于句子层次的中文文本分割。通过三组选自国家汉语语料库的测试语料的实验表明,该方法识别分割...
论文研究-行为概率的数学模型 .pdf,
提出了一种基于小波域自适应上下文结构的多尺度图像分割算法...对合成图像与航摄像片的实验结果表明,该方法的分割错误概率低于传统的基于小波域隐马尔可夫树模型的图像分割方法,且对真实图像得到了理想的分割效果.
需要辅助openCV库。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景...因此,使类间方差最大的分割意味着错分概率最小。
基于Python实现图像分割算法的源码+全部数据+使用说明.zip这是95分以上高分必过课程设计项目,下载即用无需修改,确保可以运行。也可作为期末大作业。 损失函数 Dice Loss: diece_loss.py Focal Loss: focal_loss....
传统二维Otsu法主要由于对二维直方图采用主对角线区域概率和近似为1的假设等原因,以致分割结 果不够准确.针对此问题,提出了一种二维直方图准分的Otsu快速图像分割方法.(1)准确选择邻域模板构建二维直 方图并将Otsu...
由于人体运动捕获数据的固有非线性,线性方法并不总是能够有效地找到运动捕获数据的内在维度,针对这种情况,提出了基于主测地线分析(PGA)和概率主测地线分析(PPGA)的自动分割方法。这两种方法都将人体运动视为...