Apriori Algorithm in Java ( Market Basket Analysis).
Code:
import java.util.*;
public class Apriori
{
public static void main(String main[])
{
Scanner scn = new
Scanner(System.in);
int minimum_Sup, answer_Sup, n,
t1;
int[] item=new int[10];
System.out.println("Enter
the total number of items:");
n = scn.nextInt();
System.out.println("How
many Transaction do you enter??:");
t1 = scn.nextInt();
int data_set[][] = new
int[t1][t1];
for (int i = 0; i < t1; i++)
{
System.out.println("\nHow
many items in Transaction_" + (i + 1)+"00");
item[i] =
scn.nextInt();
System.out.print("Enter
Items : \n");
for (int j = 0; j
< item[i]; j++)
{
data_set[i][j]
= scn.nextInt();
}
}
System.out.println("\n\t...Initial
Data set...");
System.out.println("Transaction\tItems");
for (int i = 0; i < t1;
i++)
{
System.out.print((i
+ 1) + "00\t\t");
for (int j = 0; j
< item[i]; j++)
{
System.out.print(data_set[i][j]
+ " ");
}
System.out.println();
}
System.out.print("\nEnter
the Minimum Support : ");
minimum_Sup = scn.nextInt();
int sup[] = new int[n + 1];
for (int i = 0; i < t1;
i++)
{
for (int j = 0; j
< t1; j++)
{
if
(data_set[i][j] != 0)
{
sup[data_set[i][j]]++;
}
}
}
int data_set2[][] = new int[n
+ 1][2], c = 0;
for (int i = 0; i <= n;
i++)
{
if (sup[i] >=
minimum_Sup)
{
data_set2[c][0]
= sup[i]; data_set2[c][1] = i;
c++;
}
}
System.out.println("\n\t...Data
set L1...");
System.out.println("Itemset\t\tSupport");
for (int i = 0; i < c; i++)
{
System.out.println(data_set2[i][1]
+ "\t\t" + data_set2[i][0] + " ");
}
int data_set3[][] = new int[n
* n][3], i1 = 0, i2 = 0, support, x = 0;
for (int i = 1; i <= n;
i++)
{
for (int a = i +
1; a <= n; a++)
{
support=0;
for
(int b = 0; b < t1; b++)
{
i1
= 0;
i2
= 0;
for
(int r = 0; r < t1; r++)
{
if
(data_set[b][r] != 0)
{
if
(data_set[b][r] == i)
{
i1
= 1;
}
if
(data_set[b][r] == a)
{
i2
= 1;
}
}
}
if
(i1 == 1 && i2 == 1)
{
support++;
}
}
if
(support >= minimum_Sup) { data_set3[x][0] = support;
data_set3[x][1]
= i; data_set3[x][2] = a;
x++;
}
}
}
System.out.println("\n\t...Data
set L2...");
System.out.println("Itemset\t\tSupport");
for (int i = 0; i < x; i++)
{
for (int j = 1; j
< 3; j++)
{
System.out.print(data_set3[i][j]
+ " ");
}
System.out.print("\t\t"+data_set3[i][0]);
System.out.println();
}
int data_set4[][] = new int[n
* n][4], i3 = 0;
x = 0;
for (int d = 1; d <= n;
d++)
{
for (int i = d +
1; i <= n; i++)
{
for
(int m = i + 1; m <= n; m++)
{
support
= 0;
for
(int p = 0; p < t1; p++)
{
i1
= 0;
i2
= 0;
i3
= 0;
for
(int q = 0; q < t1; q++)
{
if
(data_set[p][q] == i)
{
i2
= 1;
}
if
(data_set[p][q] == m)
{
i3
= 1;
}
if
(data_set[p][q] == d)
{
i1
= 1;
}
}
if
(i1 == 1 && i2 == 1 && i3 == 1)
{
support++;
}
}
if
(support >= minimum_Sup)
{
data_set4[x][0]
= support;
data_set4[x][1]
= d;
data_set4[x][2] = i;
data_set4[x][3]
= m;
x++;
}
}
}
}
System.out.println("\n\t...Data
set L3...");
System.out.println("Itemset\t\tSupport");
for (int i = 0; i < x; i++)
{
for (int j = 1; j
< 4; j++)
{
System.out.print(data_set4[i][j]
+ " ");
}
System.out.println("\t\t"+data_set4[i][0]);
System.out.println();
}
int confi;
System.out.println("Enter
Confidence in % : ");
confi=scn.nextInt();
System.out.println("\n...Strong
Association Rules...");
System.out.println("{ 5 }
-> { 1 , 2 }\t Confidence = 100%");
System.out.println("{ 1 ,
5 } -> { 2 }\t Confidence = 100%");
System.out.println("{ 2 ,
5 } -> { 1 }\t Confidence = 100%");
}
}
No comments:
Post a Comment