资源简介

数据挖掘算法 算法目录 18大DM算法 包名 目录名 算法名 AssociationAnalysis DataMining_Apriori Apriori-关联规则挖掘算法 AssociationAnalysis DataMining_FPTree FPTree-频繁模式树算法 BaggingAndBoosting DataMining_AdaBoost AdaBoost-装袋提升算法 Classification DataMining_CART CART-分类回归树算法 Classification DataMining_ID3 ID3-决策树分类算法 Classification DataMining_KNN KNN-k最近邻算法工具类 Classification DataMining_NaiveBayes NaiveBayes-朴素贝叶斯算法 Clustering DataMining_BIRCH BIRCH-层次聚类算法 Clustering DataMining_KMeans KMeans-K均值算法 GraphMining DataMining_GSpan GSpan-频繁子图挖掘算法 IntegratedMining DataMining_CBA CBA-基于关联规则的分类算法 LinkMining DataMining_HITS HITS-链接分析算法 LinkMining DataMining_PageRank PageRank-网页重要性/排名算法 RoughSets DataMining_RoughSets RoughSets-粗糙集属性约简算法 SequentialPatterns DataMining_GSP GSP-序列模式分析算法 SequentialPatterns DataMining_PrefixSpan PrefixSpan-序列模式分析算法 StatisticalLearning DataMining_EM EM-期望最大化算法 StatisticalLearning DataMining_SVM SVM-支持向量机算法 其他经典DM算法 包名 目录名 算法名 Others DataMining_ACO ACO-蚁群算法 Others DataMining_BayesNetwork BayesNetwork-贝叶斯网络算法 Others DataMining_CABDDCC CABDDCC-基于连通图的分裂聚类算法 Others DataMining_Chameleon Chameleon-两阶段合并聚类算法 Others DataMining_DBSCAN DBSCAN-基于密度的聚类算法 Others DataMining_GA GA-遗传算法 Others DataMining_GA_Maze GA_Maze-遗传算法在走迷宫游戏中的应用算法 Others DataMining_KDTree KDTree-k维空间关键数据检索算法工具类 Others DataMining_MSApriori MSApriori-基于多支持度的Apriori算法 Others DataMining_RandomForest RandomForest-随机森林算法 Others DataMining_TAN TAN-树型朴素贝叶斯算法 Others DataMining_Viterbi Viterbi-维特比算法 18大经典DM算法 18大数据挖掘的经典算法以及代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面,后面都是相应算法的博文链接,希望能够帮助大家学。 目前追加了其他的一些经典的DM算法,在others的包中涉及聚类,分类,图算法,搜索算等等,没有具体分类。 C4.5 C4.5算法与ID3算法一样,都是数学分类算法,C4.5算法是ID3算法的一个改进。ID3算法采用信息增益进行决策判断,而C4.5采用的是增益率。详细介绍链接 CART CART算法的全称是分类回归树算法,他是一个二元分类,采用的是类似于熵的基尼指数作为分类决策,形成决策树后之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法,详细介绍链接 KNN K最近邻算法。给定一些已经训练好的数据,输入一个新的测试数据点,计算包含于此测试数据点的最近的点的分类情况,哪个分类的类型占多数,则此测试点的分类与此相同,所以在这里,有的时候可以复制不同的分类点不同的权重。近的点的权重大点,远的点自然就小点。详细介绍链接 Naive Bayes 朴素贝叶斯算法。朴素贝叶斯算法是贝叶斯算法里面一种比较简单的分类算法,用到了一个比较重要的贝叶斯定理,用一句简单的话概括就是条件概率的相互转换推导

资源截图

代码片段和文件信息

package DataMining_Apriori;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

/**
 * apriori算法工具类
 * 
 * @author lyq
 * 
 */
public class AprioriTool {
// 最小支持度计数
private int minSupportCount;
// 测试数据文件地址
private String filePath;
// 每个事务中的商品ID
private ArrayList totalGoodsIDs;
// 过程中计算出来的所有频繁项集列表
private ArrayList resultItem;
// 过程中计算出来频繁项集的ID集合
private ArrayList resultItemID;

public AprioriTool(String filePath int minSupportCount) {
this.filePath = filePath;
this.minSupportCount = minSupportCount;
readDataFile();
}

/**
 * 从文件中读取数据
 */
private void readDataFile() {
File file = new File(filePath);
ArrayList dataArray = new ArrayList();

try {
BufferedReader in = new BufferedReader(new FileReader(file));
String str;
String[] tempArray;
while ((str = in.readLine()) != null) {
tempArray = str.split(“ “);
dataArray.add(tempArray);
}
in.close();
} catch (IOException e) {
e.getStackTrace();
}

String[] temp = null;
totalGoodsIDs = new ArrayList<>();
for (String[] array : dataArray) {
temp = new String[array.length - 1];
System.arraycopy(array 1 temp 0 array.length - 1);

// 将事务ID加入列表吧中
totalGoodsIDs.add(temp);
}
}

/**
 * 判读字符数组array2是否包含于数组array1中
 * 
 * @param array1
 * @param array2
 * @return
 */
public boolean iSStrContain(String[] array1 String[] array2) {
if (array1 == null || array2 == null) {
return false;
}

boolean iSContain = false;
for (String s : array2) {
// 新的字母比较时,重新初始化变量
iSContain = false;
// 判读array2中每个字符,只要包括在array1中 ,就算包含
for (String s2 : array1) {
if (s.equals(s2)) {
iSContain = true;
break;
}
}

// 如果已经判断出不包含了,则直接中断循环
if (!iSContain) {
break;
}
}

return iSContain;
}

/**
 * 项集进行连接运算
 */
private void computelink() {
// 连接计算的终止数,k项集必须算到k-1子项集为止
int endNum = 0;
// 当前已经进行连接运算到几项集开始时就是1项集
int currentNum = 1;
// 商品,1频繁项集映射图
HashMap itemMap = new HashMap<>();
FrequentItem tempItem;
// 初始列表
ArrayList list = new ArrayList<>();
// 经过连接运算后产生的结果项集
resultItem = new ArrayList<>();
resultItemID = new ArrayList<>();
// 商品ID的种类
ArrayList idType = new ArrayList<>();
for (String[] a : totalGoodsIDs) {
for (String s : a) {
if (!idType.contains(s)) {
tempItem = new FrequentItem(new String[] { s } 1);
idType.add(s);
resultItemID.add(new String[] { s });
} else {
// 支持度计数加1
tempItem = itemMap.get(s);
tempItem.setCount(tempItem.getCount() + 1);
}
itemMap.put(s tempItem);
}
}
// 将初始频繁项集转入到列表中,以便继续做连接运算
for (Map.Entry entry : itemMap.entrySet()) {
list.add((FrequentItem) entry.getValue());
}
// 按照商品ID进行排序,否则连接计

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\
     文件         483  2015-08-02 06:36  DataMiningAlgorithm-master\.gitattributes
     文件         606  2015-08-02 06:36  DataMiningAlgorithm-master\.gitignore
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_Apriori\
     文件       10208  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_Apriori\AprioriTool.java
     文件         307  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_Apriori\Client.java
     文件        1014  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_Apriori\FrequentItem.java
     文件          72  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_Apriori\testInput.txt
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_FPTree\
     文件         354  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_FPTree\Client.java
     文件       10964  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_FPTree\FPTreeTool.java
     文件        1553  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_FPTree\TreeNode.java
     文件          72  2015-08-02 06:36  DataMiningAlgorithm-master\AssociationAnalysis\DataMining_FPTree\testInput.txt
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\BaggingAndBoosting\
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\BaggingAndBoosting\DataMining_AdaBoost\
     文件        7231  2015-08-02 06:36  DataMiningAlgorithm-master\BaggingAndBoosting\DataMining_AdaBoost\AdaBoostTool.java
     文件         348  2015-08-02 06:36  DataMiningAlgorithm-master\BaggingAndBoosting\DataMining_AdaBoost\Client.java
     文件        1016  2015-08-02 06:36  DataMiningAlgorithm-master\BaggingAndBoosting\DataMining_AdaBoost\Point.java
     文件          65  2015-08-02 06:36  DataMiningAlgorithm-master\BaggingAndBoosting\DataMining_AdaBoost\input.txt
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_CART\
     文件        1443  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_CART\AttrNode.java
     文件       13879  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_CART\CARTTool.java
     文件         234  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_CART\Client.java
     文件         468  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_CART\input.txt
     目录           0  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_ID3\
     文件         995  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_ID3\AttrNode.java
     文件         287  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_ID3\Client.java
     文件         214  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_ID3\DataNode.java
     文件       11441  2015-08-02 06:36  DataMiningAlgorithm-master\Classification\DataMining_ID3\ID3Tool.java
............此处省略164个文件信息

评论

共有 条评论