教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 行业范文 >

数据挖掘关联性分析小软件Java源程序代码

来源:网络收集 时间:2026-08-24
导读: 详细Java源程序代码,,,可跑,,,绝对给力 关联规则算法实现 一、实验目的 1. 2. 3. 4. 了解编写数据挖掘算法的一般过程; 理解关联规则生成算法; 掌握生成频繁项集的Apriori算法; 掌握由频繁项集生成关联规则的方法。 二、实验环境 windows操作系统,一种程

详细Java源程序代码,,,可跑,,,绝对给力

关联规则算法实现

一、实验目的

1. 2. 3. 4.

了解编写数据挖掘算法的一般过程; 理解关联规则生成算法;

掌握生成频繁项集的Apriori算法; 掌握由频繁项集生成关联规则的方法。

二、实验环境

windows操作系统,一种程序设计语言开发环境。

三、实验内容及步骤

1、基于模拟数据集,实现Apriori算法以获得频繁项集。 2、基于上一步得到的频繁项集,编写算法得到关联规则。 3.实验最后生成的Apriori算法的演示程序如下图所示

:

输入最小的支持度阈值为1生成频繁项集

详细Java源程序代码,,,可跑,,,绝对给力

输入最小可信度的值生成关联规则值

:

四、实验中的问题和心得

详细Java源程序代码,,,可跑,,,绝对给力

在实验过程中,遇到了不少的问题,比如说模拟数据集的输入(本人通过一个二维数组将其解决)。通过此次实验,我也从中掌握了不和知识,比如加深了对Apriori算法的理解。通过此次算法,我也设想过如何编写数据挖掘的一般过程,对其也有了更深层次的认识。

五、回答问题

1. 请设置不同的最小支持度阈值,观察得到的频繁项集的数目,说说频繁项集与最小

支持度阈值之间的关系。

答:输入最小支持度阈值为2时,其生成的频繁项集如下:

最小支持度阈值表示数据项集在统计意义上的最低主要性,小于最低支持度的数据项将会被丢弃,将影响频繁项集的结果。

详细Java源程序代码,,,可跑,,,绝对给力

2. 请设置不同的最小可信度阈值,观察得到的关联规则的数目,说说关联规则与最小

可信度阈值之间的关系。

答:输入的最小可信度的值为1,生成的关联规则如下:

最小可信度阈值表示规则的最低可靠性,小于该设定的可靠性值的规则将会被丢弃。

3. 详细介绍各算法的流程图和所用到的数据结构,并附带源代码(源代码中应有必要

的注释信息)。 答:(1)算法用到的数据结构:哈希表和二维数组。 (2)算法的伪代码描述如下: 输入:交易数据库D;最小支持度阈值min_sup。 输出:D中的频繁项集L。 方法:

(1) L1=find_frequent_1_itemset(D);找频繁项集1-项集; (2) for ( k=2; Lk-1X <; min_sup)

{ apriori_gen(Lk-1,min_sup) 连接和剪枝。用于在 第k-1次遍历中生成的Lk-1生成Ck

for each t| D 扫描数据库,确定每个候选项集的支持频度 { Ct=subset(Ck ,t)获得t所包含的候选项集 for each c Ct c.count++; } }

(3) Lk={ c Ck | c.count > min_sup }由Ck生成Lk (4) return L=L1 ∪ L2 …. ∪ Lk

详细Java源程序代码,,,可跑,,,绝对给力

procedure apriori_gen(Lk-1,min_sup) {

for each l1 Lk-1 for each l2 Lk-1 { if(l1[1]=l2[1] ∧… ∧ l1[k-2]=l2[k-2] ∧ l1[k-1] < l2[k-1] ) c=l1 l2; 将两个项集连接在一起 if not has_infrequent_itemset(c,Lk-1) Ck=Ck ∪ { c } ; } reutrn Ck }

procedure has_infrequent_itemset (c,Lk-1) { for each(k-1) subset s of c if s | Lk-1 return true ; else return false ; }

(3)算法源码:

/**

* 编写者: oklzh * Apriori算法

* 编写日期: 2007-11-04 */

package Apriori;

import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Hashtable; import java.util.Iterator; import java.util.Set;

import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel;

详细Java源程序代码,,,可跑,,,绝对给力

import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JTextField;

import Apriori.Apriori.Item;

public class AprioriGUI extends JFrame {

private JTextArea textArea; //模拟数据集

private static JTextArea textArea_relating; //关联规则集 private static JTextArea textArea_frequency; //频繁项目集 private static JTextField support; // 最小支持度 private static JTextField limintCon; // 最小可信度 private String frequency; private String relating;

Hashtable ht1 = new Hashtable(); // 用于L1 Hashtable ht2 = new Hashtable(); // 用于L2

private static Hashtable ht3 = new Hashtable(); // 用于L3

//模拟数据集

String info[][]={ /**

* Launch the application * @param args */

public static void main(String args[]) {

try {

AprioriGUI frame = new AprioriGUI();

{"I1","I2","I5"}, {"I2","I4"}, {"I2","I3"}, {"I1","I2","I4"}, {"I1","I3"}, {"I2","I3"}, {"I1","I3"},

{"I1","I2","I3","I5"}, {"I1","I2","I3"}};

详细Java源程序代码,,,可跑,,,绝对给力

}

}

e.printStackTrace();

} catch (Exception e) {

/**

* Create the frame */

public AprioriGUI() {

super();

getContentPane().setLayout(null); setBounds(100, 100, 536, 408);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JLabel label = new JLabel(); label.setText("请输入最小支持度阈值"); label.setBounds(10, 10, 162, 23); getContentPane().add(label); limintCon = new JTextField();

limintCon.setBounds(169, 39, 90, 21); getContentPane().add(limintCon); final JButton button = new JButton();

button.addActionListener(new ActionListener() {

public void actionPerformed(final ActionEvent e) {

try {

String str = support.getText();

String str1 = "频繁项集生成过程(其中最小支持度阈值是" + str textArea_frequency.setText(str1 + createL3()); JOptionPane.showMessageDialog(null, "请输入最小支持度阈

+ ")" + "\n";

}

} catch (RuntimeException e1) {

值如: 1 ");

} });

button.setText("生成频繁集");

button.setBounds(285, 10, 131, 2 …… 此处隐藏:10302字,全部文档内容请下载后查看。喜欢就下载吧 ……

数据挖掘关联性分析小软件Java源程序代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/1983588.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)