⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 partition-main.c

📁 Ripper 分类算法
💻 C
字号:
#include <stdio.h>#include "ripper.h"#include "protos.h"#include "mdb.h"/******************************************************************************/char *Program="partition";char *Help_str[] = {    "syntax: partition [options] [stem]",    "   choose a random subset of a dataset",    "",    "options are:",    "  -s:       read from stdin (not stem.data)",    "  -m#:      choose # examples",      "  -p#:      choose a percent # of the examples",      "  -r<str>:  put remaining examples in file <str>",      "  -R:       randomize operation",    NULL};main(argc,argv)int argc;char *argv[];{    int m,i,j,ndel;    int o;     vec_t *data;    char *stem;    FILE *rfp;    BOOL use_stdin;    int pct;    double frac;        m = 0;    rfp = NULL;    pct = 50;    use_stdin = FALSE;    set_trace_level(NONE);    while ((o=getopt(argc,argv,"stm:p:r:Rh"))!=EOF) {	switch (o) {	  case 'R':	    randomize();	    break;	  case 's':	    use_stdin = TRUE;	    break;	  case 'm':	    m = atoi(optarg);	    break;	  case 'p':	    frac = atof(optarg);	    if (frac<=1.0 && frac>=0.0) pct = 100*frac;	    else pct=frac;	    break;	  case 'r':	    rfp = fopen(optarg,"w");	    if (rfp==NULL) fatal("can't open file %s for output",optarg);	    break;	  case 'h':	  case '?':	  default: 	    give_help();	    if (o=='h') exit(0);	    else fatal("option not implemented");	}    }    if (optind<argc) {	stem = argv[optind++];	ld_names(add_ext(stem,".names"));	if (use_stdin) data = ld_data(NULL);	else data = ld_data(add_ext(stem,".data"));    } else {	/* no stem */	stem = "stdin";	data = ld_data(NULL);    }    if (optind<argc) {	warning("not all arguments were used: %s ...",argv[optind]);    }    if (data==NULL || vmax(data)==0) fatal("no data!");    if (m!=0) { 	/* remove m random examples */	if (m<=0 || m >= vmax(data)) {	    fatal("m must be >=0 and <= %d(was %d)\n",vmax(data),m);	}	stratify_and_shuffle_data(data,1);	ndel = vmax(data)-m;		for (i=0; i<ndel; i++) {	    j = random()%vmax(data);	    if (rfp) fprint_example(rfp,vref(example_t,data,j));	    swap_out_example(data,j);	}    } else {	if (pct<=0 || pct>=100) {	    fatal("p must be between 0 and 100");	}	for (i=0; i<vmax(data); i++) {	    if (random()%100 > pct) {		if (rfp) fprint_example(rfp,vref(example_t,data,i));		swap_out_example(data,i);	    }	}    }    fprint_data(stdout,data);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -