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

📄 utility.cpp

📁 关联规则挖掘数据产生程序.VISUAL C++ 可产生满足要求的挖掘数据.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// UniformDist.cpp: implementation of the UniformDist class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Utility.h"

#include <string.h>
#include <math.h>
#include <stdio.h>

#define VERSION "Version dated July 22, 1997"

extern char data_file[];
extern char pat_file[];
extern char tax_file[];

static bool userfile = false;

void err_msg(char *str)
{
  cerr << str << flush;
  exit(1);
}


void print_version(void)
{
  cerr << VERSION << endl;
}


void command_line(TaxPar &par)
{
  par.calc_values();

  cerr << "Command Line Options:\n";
  cerr << "  -ntrans number_of_transactions_in_000s (default: "
       << par.ntrans/1000 << ")\n";
  cerr << "  -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";
  cerr << "  -nitems number_of_different_items_in_000s (default: "
       << par.nitems/1000 << ")\n";
  cerr << "  -nroots number_of_roots (default: " << par.nroots << ")\n";
  cerr << "  -nlevels number_of_different_levels (default: " << par.nlevels
       << ")\n";
  cerr << "  -fanout average_fanout (default: " << par.fanout << ")\n";
  cerr << "  -depth affects_average_depth_of_items_in_itemsets (default: "
    << par.depth_ratio << ")\n";
  cerr << endl;

  cerr << "  -npats number_of_patterns (default: " << par.lits.npats << ")\n";
  cerr << "  -patlen avg_length_of_maximal_pattern (default: "
       << par.lits.patlen << ")\n";
  cerr << "  -corr correlation_between_patterns (default: " << par.lits.corr
       << ")\n";
  cerr << "  -conf avg_confidence_in_a_rule (default: " << par.lits.conf
       << ")\n";
  cerr << endl;

  cerr << "  -fname <filename> (write to filename.data and filename.pat)\n";
  cerr << "  -ascii (Write data in ASCII format; default: " << (par.ascii? "True": "False") << ")\n";
  cerr << "  -randseed # (reset seed used generate to x-acts; must be negative)\n";
  cerr << "  -version (to print out version info)\n";
  exit(1);
}


void command_line(TransPar &par)
{
  cerr << "Command Line Options:\n";
  cerr << "  -ntrans number_of_transactions_in_000s (default: "
       << par.ntrans/1000 << ")\n";
  cerr << "  -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";
  cerr << "  -nitems number_of_different_items_in_000s) (default: "
       << par.nitems/1000 << ")\n";
  cerr << endl;

  cerr << "  -npats number_of_patterns (default: " << par.lits.npats << ")\n";
  cerr << "  -patlen avg_length_of_maximal_pattern (default: "
       << par.lits.patlen << ")\n";
  cerr << "  -corr correlation_between_patterns (default: " << par.lits.corr
       << ")\n";
  cerr << "  -conf avg_confidence_in_a_rule (default: " << par.lits.conf
       << ")\n";
  cerr << endl;

  cerr << "  -fname <filename> (write to filename.data and filename.pat)\n";
  cerr << "  -ascii (default: " << (par.ascii? "True": "False") << ")\n";
  cerr << "  -randseed # (reset seed used generate to x-acts; must be negative)\n";
  cerr << "  -version (to print out version info)\n";
  exit(1);
}


void command_line(SeqPar &par)
{
  cerr << "Command Line Options:\n";
  cerr << "  -ncust number_of_customers_in_000s (default: "
       << par.ncust/1000 << ")\n";
  cerr << "  -slen avg_trans_per_customer (default: " << par.slen << ")\n";
  cerr << "  -tlen avg_items_per_transaction (default: " << par.tlen << ")\n";
  cerr << "  -nitems number_of_different_items_in_000s (default: "
       << par.nitems/1000 << ")\n";
  cerr << "  -rept repetition-level (default: " << par.rept << ")\n";
  cerr << endl;

  cerr << "  -seq.npats number_of_seq_patterns (default: " << par.lseq.npats
       << ")\n";
  cerr << "  -seq.patlen avg_length_of_maximal_pattern (default: "
       << par.lseq.patlen << ")\n";
  cerr << "  -seq.corr correlation_between_patterns (default: "
       << par.lseq.corr << ")\n";
  cerr << "  -seq.conf avg_confidence_in_a_rule (default: " << par.lseq.conf
       << ")\n";
  cerr << endl;

  cerr << "  -lit.npats number_of_patterns (default: " << par.lits.npats
       << ")\n";
  cerr << "  -lit.patlen avg_length_of_maximal_pattern (default: "
       << par.lits.patlen << ")\n";
  cerr << "  -lit.corr correlation_between_patterns (default: "
       << par.lits.corr << ")\n";
  cerr << "  -lit.conf avg_confidence_in_a_rule (default: " << par.lits.conf
       << ")\n";
  cerr << endl;

  cerr << "  -fname <filename> (write to filename.data and filename.pat)\n";
  cerr << "  -ascii (Write data in ASCII format; default: " << (par.ascii? "True": "False") << ")\n";
  cerr << "  -version (to print out version info)\n";
  exit(1);
}


void cat_fname(char *str1, char *str2)
{
  if (userfile) return;
  
  strcat(data_file, str1);
  strcat(pat_file, str1);
  strcat(tax_file, str1);
  strcat(data_file, str2);
  strcat(pat_file, str2);
  strcat(tax_file, str2);
}


void get_args(TransPar &par, int argc, char **argv)
{
  int arg_pos = 2;
  
  strcpy(data_file, "data");
  strcpy(pat_file, "pat");
  strcpy(tax_file, "tax");
  while (arg_pos < argc)
    {
      if (strcmp(argv[arg_pos], "-ntrans") == 0) {
	par.ntrans = 1000 * atof(argv[++arg_pos]);
	cat_fname(".ntrans_", argv[arg_pos]);
	arg_pos++;
	if (par.ntrans < 1) err_msg("ntrans must be >= 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-tlen") == 0) {
	par.tlen = atof(argv[++arg_pos]);
	cat_fname(".tlen_", argv[arg_pos]);
	arg_pos++;
	if (par.tlen < 1) err_msg("tlen must be >= 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-nitems") == 0) {
	par.nitems = 1000 * atof(argv[++arg_pos]);
	cat_fname(".nitems_", argv[arg_pos]);
	arg_pos++;
	if (par.nitems < 1) err_msg("nitems must be >= 1\n");
	continue;
      }

      else if (strcmp(argv[arg_pos], "-npats") == 0) {
	par.lits.npats = atoi(argv[++arg_pos]);
	cat_fname(".npats_", argv[arg_pos]);
	arg_pos++;
	if (par.lits.npats < 1) err_msg("npats must be >= 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-patlen") == 0) {
	par.lits.patlen = atof(argv[++arg_pos]);
	cat_fname(".patlen_", argv[arg_pos]);
	arg_pos++;
	if (par.lits.patlen <= 0) err_msg("patlen must be > 0\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-corr") == 0) {
	par.lits.corr = atof(argv[++arg_pos]);
	cat_fname(".corr_", argv[arg_pos]);
	arg_pos++;
	continue;
      }
      else if (strcmp(argv[arg_pos], "-conf") == 0) {
	par.lits.conf = atof(argv[++arg_pos]);
	cat_fname(".conf_", argv[arg_pos]);
	arg_pos++;
	if (par.lits.conf > 1 || par.lits.conf < 0) 
	  err_msg("conf must be between 0 and 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-fname") == 0) {
        strcpy(data_file, argv[++arg_pos]);
        strcat(data_file, ".data");
        strcpy(pat_file, argv[arg_pos++]);
        strcat(pat_file, ".pat");
        userfile = true;
	continue;
      }
      else if (strcmp(argv[arg_pos], "-ascii") == 0) {
	par.ascii = true;
	cat_fname(".ascii", "");
	arg_pos++;
	continue;
      }
      else if (strcmp(argv[arg_pos], "-randseed") == 0) {
	par.seed = atoi(argv[++arg_pos]);
	arg_pos++;
	if (par.seed >= 0)
	  err_msg("randseed must be negative.\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-version") == 0) {
	cout << VERSION << endl;
	exit(0);
      }
      else {
	command_line(par);
      }
    }  // end while
}


void get_args(TaxPar &par, int argc, char **argv)
{
  int arg_pos = 2;
  
  strcpy(data_file, "data");
  strcpy(pat_file, "pat");
  strcpy(tax_file, "tax");
  while (arg_pos < argc)
    {
      if (strcmp(argv[arg_pos], "-ntrans") == 0) {
	par.ntrans = 1000 * atof(argv[++arg_pos]);
	cat_fname(".ntrans_", argv[arg_pos]);
	arg_pos++;
	if (par.ntrans < 1) err_msg("ntrans must be >= 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-tlen") == 0) {
	par.tlen = atof(argv[++arg_pos]);
	cat_fname(".tlen_", argv[arg_pos]);
	arg_pos++;
	if (par.tlen < 1) err_msg("tlen must be >= 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-nitems") == 0) {
	par.nitems = 1000 * atof(argv[++arg_pos]);
	cat_fname(".nitems_", argv[arg_pos]);
	arg_pos++;
	if (par.nitems < 1) err_msg("nitems must be >= 1\n");
	continue;
      }
      else if (strcmp(argv[arg_pos], "-nroots") == 0) {
	par.nroots = atoi(argv[++arg_pos]);
	cat_fname(".nroots_", argv[arg_pos]);
	arg_pos++;
	if (par.nroots < 1) err_msg("nroots must be >= 1\n");
	continue;

⌨️ 快捷键说明

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