没有合适的资源?快使用搜索试试~ 我知道了~
C++简单实现关联规则挖掘中Apriori算法
4星 · 超过85%的资源 需积分: 14 56 下载量 185 浏览量
2013-11-16
12:54:46
上传
评论 4
收藏 17KB TXT 举报
温馨提示
试读
14页
C++简单实现关联规则挖掘中Apriori算法
资源推荐
资源详情
资源评论
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <map>
#include <cmath>
#include <bitset>
#include <algorithm>
#include <iomanip>
using namespace std;
//#define minsup 0.2
//#define minconf 0.8
const double minsup=0.2,minconf=0.7; //设置最小支持度和最小置信度
vector<string> confidencevec; //用于存放满足最低置信度要求的关联规则
map<string,int> items_count; //统计各个项集的数目
vector<string> mergeItem(vector<string> vect1,vector<string> vect2,int round); //合并生成新的候选项集
int isExist(vector<string> item,vector<vector<string> >items); //判断项集item是否已经存在候选项集集合items中,存在则返回1
void computeConfidence(vector<string> vec,int round); //计算并输出置信度
int main()
{
vector<vector<string> > datavec; //原始数据项集
vector<vector<string> > candidatevec; //候选项集
vector<vector<string> > frequentvec; //频繁项集
vector<string> AssociationRulevec; //关联规则项集
vector<map<string,int> > bitmap; //判断某个项目在某一个事务中是否存在,存在则值为1,反之为0
long trancount=0; //原始事务总数
ifstream file("F:\\Software\\source code\\data.txt"); //打开数据文件
ofstream outfile("F:\\Software\\source code\\output.txt"); //输出规则到该文件
if(!file) //检查文件是否打开成功
{
#include <fstream>
#include <string>
#include <vector>
#include <map>
#include <cmath>
#include <bitset>
#include <algorithm>
#include <iomanip>
using namespace std;
//#define minsup 0.2
//#define minconf 0.8
const double minsup=0.2,minconf=0.7; //设置最小支持度和最小置信度
vector<string> confidencevec; //用于存放满足最低置信度要求的关联规则
map<string,int> items_count; //统计各个项集的数目
vector<string> mergeItem(vector<string> vect1,vector<string> vect2,int round); //合并生成新的候选项集
int isExist(vector<string> item,vector<vector<string> >items); //判断项集item是否已经存在候选项集集合items中,存在则返回1
void computeConfidence(vector<string> vec,int round); //计算并输出置信度
int main()
{
vector<vector<string> > datavec; //原始数据项集
vector<vector<string> > candidatevec; //候选项集
vector<vector<string> > frequentvec; //频繁项集
vector<string> AssociationRulevec; //关联规则项集
vector<map<string,int> > bitmap; //判断某个项目在某一个事务中是否存在,存在则值为1,反之为0
long trancount=0; //原始事务总数
ifstream file("F:\\Software\\source code\\data.txt"); //打开数据文件
ofstream outfile("F:\\Software\\source code\\output.txt"); //输出规则到该文件
if(!file) //检查文件是否打开成功
{
cout<<"Fail to open data file!"<<endl;
return 1;
}
else
{
string temp;
vector<string> item; //项集的临时vector
cout<<"The original data:"<<endl;
int begin,end;
while(getline(file,temp)) //一行一行读入数据
{
trancount++;
begin=0;
temp.erase(0,temp.find_first_not_of("\r\t\n ")); //去除字符串首部的空格
temp.erase(temp.find_last_not_of("\r\t\n")+1); //去除字符串尾部的空格
while((end=temp.find(' ',begin))!=string::npos) //每一个事务中的项是以空格为分隔符的
{
item.push_back(temp.substr(begin,end-begin)); //将每一个项插入item中
begin=end+1;
}
item.push_back(temp.substr(begin)); //一个事务中的最后一项
datavec.push_back(item); //将一个事务中的所有项当成一个整体插入另一个大的vector中
item.clear(); //清空item
cout<<temp<<endl;
}
cout<<"Press Enter to continue the processing"; //pause
getchar();
map<string,int> item_map;
for(vector<vector<string> >::size_type ix=0;ix!=datavec.size();++ix)
return 1;
}
else
{
string temp;
vector<string> item; //项集的临时vector
cout<<"The original data:"<<endl;
int begin,end;
while(getline(file,temp)) //一行一行读入数据
{
trancount++;
begin=0;
temp.erase(0,temp.find_first_not_of("\r\t\n ")); //去除字符串首部的空格
temp.erase(temp.find_last_not_of("\r\t\n")+1); //去除字符串尾部的空格
while((end=temp.find(' ',begin))!=string::npos) //每一个事务中的项是以空格为分隔符的
{
item.push_back(temp.substr(begin,end-begin)); //将每一个项插入item中
begin=end+1;
}
item.push_back(temp.substr(begin)); //一个事务中的最后一项
datavec.push_back(item); //将一个事务中的所有项当成一个整体插入另一个大的vector中
item.clear(); //清空item
cout<<temp<<endl;
}
cout<<"Press Enter to continue the processing"; //pause
getchar();
map<string,int> item_map;
for(vector<vector<string> >::size_type ix=0;ix!=datavec.size();++ix)
剩余13页未读,继续阅读
x10232
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页