• 大小: 69KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C#
  • 标签: Apriori  c#  

资源简介

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个文件信息

评论

共有 条评论