資源簡介
Apriori算法的c#實現,比較簡短,兩個文件,500多行。測試文件在Data文件夾下,其中數據是程序中的GenerateTestFile函數隨機生成的。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Data;
using?System.Collections;
using?System.IO;
using?System.Threading;
namespace?Apriori
{
????//關聯規則的右半部分,例如?1^2^7?==>?3^5?[12?0.50],即箭頭右邊的部分
????public?class?RuleRightPart
????{
????????public?string?items;
????????public?int?support;
????????public?double?confidence;
????????public?RuleRightPart()
????????{?}
????????public?RuleRightPart(string?str?int?i?double?d)
????????{
????????????this.items?=?str;
????????????this.support?=?i;
????????????this.confidence?=?d;
????????}
????}
????public?class?Apriori
????{
????????static?void?Main(string[]?args)
????????{
????????????Apriori?apriori?=?new?Apriori(200?0.05?0.5);
????????????apriori.GetRules();
????????}
????????public?Apriori()
????????{?}
????????public?Apriori(int?_maxId?double?_support?double?_confidence)
????????{
????????????this.maxId?=?_maxId;
????????????this.support?=?_support;
????????????this.confidence?=?_confidence;
????????}
????????public?static?string?sDataFile?=?@“D:\Projects\Apriori\Data\test.txt“;//保存事務集的文件路徑
????????private?int?maxId;???????????//事務的最大編號
????????private?double?support;??????//支持度
????????private?double?confidence;???//置信度
????????
????????private?List?AllTransactions?=?new?List();??//所有事務
????????private?List?NeedReview?=?new?List();???????????????//判斷某事務是否需要遍歷
????????///?
????????///?從文件中加載所有事務
????????///?
????????private?void?LoadAllItems()
????????{
????????????string?sLine;
????????????string[]?strArray;
????????????char[]?separator?=?{?‘\t‘?};
????????????int[]?aPrev?=?new?int[maxId?+?1];
????????????int[]?aCurr?=?new?int[maxId?+?1];
????????????try
????????????{
????????????????StreamReader?sr?=?new?StreamReader(sDataFile?Encoding.Default?false);
????????????????sLine?=?sr.ReadLine();
????????????????while?(sLine?!=?null)
????????????????{
????????????????????strArray?=?sLine.Split(separator?System.StringSplitOptions.RemoveEmptyEntries);
????????????????????//利用數組去重和排序????????????????????
????????????????????foreach?(string?str?in?strArray)
????????????????????{
????????????????????????int?ix?=?int.Parse(str);
????????????????????????if?((ix?<=?maxId)?&&?(aPrev[ix]?==?aCurr[ix]))
????????????????????????????++aCurr[ix];
????????????????????}
????????????????????List?l?=?new?List();
????????????????????for?(int?ix?=?0;?ix?<=?maxId;?++ix)
????????????????????????if?(aCurr[ix]?==?1?+?aPrev[ix])
????????????????????????{
????????????????????????????l.Add(ix);
????????????????????????????aPrev[ix]?=?aCurr[ix];
????????????????????????}
????????????????????DataItem?item?=?new?DataItem(l);
????????????????????AllTransactions.Add(item);
????????????????????NeedReview.Add(true);
????????????????????sLine?=?sr.ReadLine();
????????????????}
????????????????sr.Close();
????????????}
????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12461??2012-12-09?21:54??Apriori\Apriori.cs
?????文件???????2526??2012-11-29?19:42??Apriori\Apriori.csproj
?????文件????????903??2012-11-28?16:36??Apriori\Apriori.sln
????..A..H.?????15872??2012-12-06?21:54??Apriori\Apriori.suo
?????文件??????10240??2012-11-30?15:38??Apriori\bin\Debug\Apriori.exe
?????文件??????28160??2012-11-30?15:38??Apriori\bin\Debug\Apriori.pdb
?????文件??????14328??2012-11-30?15:37??Apriori\bin\Debug\Apriori.vshost.exe
?????文件????????490??2007-07-21?01:33??Apriori\bin\Debug\Apriori.vshost.exe.manifest
?????文件??????10752??2012-12-09?21:47??Apriori\bin\Release\Apriori.exe
?????文件??????30208??2012-12-09?21:47??Apriori\bin\Release\Apriori.pdb
?????文件??????14328??2012-12-09?11:00??Apriori\bin\Release\Apriori.vshost.exe
?????文件????????490??2007-07-21?01:33??Apriori\bin\Release\Apriori.vshost.exe.manifest
?????文件???????6869??2012-11-30?15:34??Apriori\Data\test.txt
?????文件???????7381??2012-12-09?21:36??Apriori\DataItem.cs
?????文件????????234??2012-11-30?15:37??Apriori\obj\Debug\Apriori.csproj.FileListAbsolute.txt
?????文件??????10240??2012-11-30?15:38??Apriori\obj\Debug\Apriori.exe
?????文件??????28160??2012-11-30?15:38??Apriori\obj\Debug\Apriori.pdb
?????文件????????244??2012-12-09?11:00??Apriori\obj\Release\Apriori.csproj.FileListAbsolute.txt
?????文件??????10752??2012-12-09?21:47??Apriori\obj\Release\Apriori.exe
?????文件??????30208??2012-12-09?21:47??Apriori\obj\Release\Apriori.pdb
?????文件???????1352??2012-11-28?16:36??Apriori\Properties\AssemblyInfo.cs
?????目錄??????????0??2012-11-29?17:27??Apriori\obj\Debug\Refactor
?????目錄??????????0??2012-11-28?16:36??Apriori\obj\Debug\TempPE
?????目錄??????????0??2012-11-30?15:39??Apriori\obj\Release\TempPE
?????目錄??????????0??2012-11-30?09:54??Apriori\bin\Debug
?????目錄??????????0??2012-11-30?15:39??Apriori\bin\Release
?????目錄??????????0??2012-11-30?15:38??Apriori\obj\Debug
?????目錄??????????0??2012-12-09?21:47??Apriori\obj\Release
?????目錄??????????0??2012-11-30?15:39??Apriori\bin
?????目錄??????????0??2012-12-09?21:55??Apriori\Data
............此處省略6個文件信息
- 上一篇:銳浪asp.net MVC html5報表顯示
- 下一篇:ASP.NET漂亮的選項卡
評論
共有 條評論