CN109214514A - 一种基于Rough Set的数据分析方法 - Google Patents
一种基于Rough Set的数据分析方法 Download PDFInfo
- Publication number
- CN109214514A CN109214514A CN201810922536.7A CN201810922536A CN109214514A CN 109214514 A CN109214514 A CN 109214514A CN 201810922536 A CN201810922536 A CN 201810922536A CN 109214514 A CN109214514 A CN 109214514A
- Authority
- CN
- China
- Prior art keywords
- data
- reduction
- rule
- attribute
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于Rough Set的数据分析方法,包括离线建规则库和在线分析两部分;通过java技术实现,利用Rough Set法对定性与定量信息混合的变量进行规则提取,建立规则库;在线分析时,通过规则匹配法对在线数据进行规则匹配,进而获取在线数据蕴含的信息。本发明的一种基于Rough Set的数据分析方法和现有技术相比,具有以下有益效果:1)能够从定性和定量变量混合的数据中挖掘信息;2)能够删除冗余变量,降低变量的冗余度;3)能够通过规则提取法,提取发现数据本身蕴含的规则信息;4)能够通过规则匹配法,进行数据预测。
Description
技术领域
本发明涉及智能计算的数据挖掘技术领域,具体地说是一种基于Rough Set的数据分析方法。
背景技术
随着社会经济的发展,人们对于数据的重要性的认识达到了一个新的高度,数据作为人们日常生产生活的行为记录的重要载体,蕴含着重要的价值。面对数据库中几何式增长的数据,如何将这些数据转换成有用的信息和知识,并将获取的信息应用到生产生活中,具有重要的研究价值。
在自然科学、社会科学和工行才能技术的很多领域中,都不同程度的涉及到对不确定因素和不完备信息的处理。从实际系统中采集到的数据从常常包含着噪声,不够精确甚至不够完整。
发明内容
本发明的技术任务是提供一种基于Rough Set的数据分析方法。
本发明的技术任务是按以下方式实现的:
一种基于Rough Set的数据分析方法,包括离线建规则库和在线分析两部分;通过java技术实现,利用Rough Set法对定性与定量信息混合的变量进行规则提取,建立规则库;在线分析时,通过规则匹配法对在线数据进行规则匹配,进而获取在线数据蕴含的信息。
该数据分析方法的操作步骤如下:
步骤1)数据预处理,根据定性化法将定量数据定性化;
步骤2)数据约简,根据数据约简法删除变量中的冗余变量,降低变量的冗余度;
步骤3)值约简,根据属性值约简法对约简后的数据进行规则提取,降低冗余度;
步骤4)将实时在线数据进行定性化处理后,通过规则匹配法在规则库中进行规则匹配,进而获得在线数据蕴含的信息。
所述的步骤1)数据预处理,包括:对数据库中的数据进行预处理,将不同量纲,不同维度的数据转换成统一标准的数据,降低因数据本身权重对规则提取的影响。
所述的数据预处理采用基于布尔逻辑的预处理法和基于信息熵的预处理法。
所述的步骤2)数据约简,包括:根据等价关系对预处理后的数据进行约简,以便降低数据的冗余度,去除数据中的无用信息;采用约简法有:基于正域的约简法、基于区分矩阵的约简法和基于属性重要度的启发式约简法。
所述的基于正域的约简法,是在保证相对正域不变的条件下,逐个删除条件属性的冗余属性直至寻求到最终结果;所述的基于区分矩阵的约简法,是将决策表知识通过区分矩阵中表达出来,从而删除冗余属性;所述的基于属性重要度的启发式约简法,通过计算条件属性相对于决策属性的重要度,删除不必要的属性。
所述的步骤3)值约简,包括:通过规则提取法对约简后的数据进行规则提取,挖掘数据内涵规则;采用的属性值约简法主要有:基于正域的约简法,基于区分矩阵的约简法和基于属性重要度的启发式约简法。
所述的基于正域的约简法,在保证相对正域不变的条件下,逐个删除条件属性的冗余属性直至寻求到最终结果;所述的基于区分矩阵的约简法,将决策表知识通过区分矩阵中表达出来,删除冗余属性;所述的基于属性重要度的启发式约简法,通过计算条件属性相对于决策属性的重要度,删除不必要的属性。
所述的步骤4)通过规则匹配法在规则库中进行规则匹配,进而获得在线数据蕴含的信息;包括:利用获得的信息对实时数据进行预测,获得预期结果,以便进行实时调整。
本发明的一种基于Rough Set的数据分析方法和现有技术相比,具有以下有益效果:
1)能够从定性和定量变量混合的数据中挖掘信息;
2)能够删除冗余变量,降低变量的冗余度;
3)能够通过规则提取法,提取发现数据本身蕴含的规则信息;
4)能够通过规则匹配法,进行数据预测;
5)能够有效的分析不精确、不一致、不完整等各种不完备信息,还可以对数据进行分析和推理,从中发现隐含的知识,揭示潜在的规律;
6)无需提供问题所需处理的数据集合之外的任何先验信息,对于问题的不确定的描述和处理比较客观。
附图说明
附图1为一种基于Rough Set的数据分析方法的流程示意图。
具体实施方式
实施例1:
一种基于Rough Set的数据分析方法,包括离线建规则库和在线分析两部分;通过java技术实现,利用MySQL数据库进行存储,利用Rough Set法对定性与定量信息混合的变量进行规则提取,建立规则库;在线分析时,通过规则匹配法对在线数据进行规则匹配,进而获取在线数据蕴含的信息。
该数据分析方法的操作步骤如下:
步骤1)数据预处理,根据定性化法将定量数据定性化;对数据库中的数据进行预处理,将不同量纲,不同维度的数据转换成统一标准的数据,降低因数据本身权重对规则提取的影响;所述的数据预处理采用基于布尔逻辑的预处理法和基于信息熵的预处理法。
步骤2)数据约简,根据数据约简法删除变量中的冗余变量,降低变量的冗余度;根据等价关系对预处理后的数据进行约简,以便降低数据的冗余度,去除数据中的无用信息;采用约简法有:基于正域的约简法、基于区分矩阵的约简法和基于属性重要度的启发式约简法;所述的基于正域的约简法,是在保证相对正域不变的条件下,逐个删除条件属性的冗余属性直至寻求到最终结果;所述的基于区分矩阵的约简法,是将决策表知识通过区分矩阵中表达出来,从而删除冗余属性;所述的基于属性重要度的启发式约简法,通过计算条件属性相对于决策属性的重要度,删除不必要的属性。
步骤3)值约简,根据属性值约简法对约简后的数据进行规则提取,降低冗余度;通过规则提取法对约简后的数据进行规则提取,挖掘数据内涵规则;采用的属性值约简法主要有:基于正域的约简法,基于区分矩阵的约简法和基于属性重要度的启发式约简法;所述的基于正域的约简法,在保证相对正域不变的条件下,逐个删除条件属性的冗余属性直至寻求到最终结果;所述的基于区分矩阵的约简法,将决策表知识通过区分矩阵中表达出来,删除冗余属性;所述的基于属性重要度的启发式约简法,通过计算条件属性相对于决策属性的重要度,删除不必要的属性。
步骤4)将实时在线数据进行定性化处理后,通过规则匹配法在规则库中进行规则匹配,进而获得在线数据蕴含的信息;利用获得的信息对实时数据进行预测,获得预期结果,以便进行实时调整。
相关代码:
public class RecordCollection {
// 集合包含的属性
private HashMap<String, String> attrValues;
// 数据记录列表
private ArrayList<Record> recordList;
public RecordCollection() {
this.attrValues = new HashMap<>();
this.recordList = new ArrayList<>();
}
public RecordCollection(HashMap<String, String> attrValues,
ArrayList<Record> recordList) {
this.attrValues = attrValues;
this.recordList = recordList;
}
public ArrayList<Record> getRecord() {
return this.recordList;
}
/**
* 返回集合的字符名称数组
*
* @return
*/
public ArrayList<String> getRecordNames() {
ArrayList<String> names = new ArrayList<>();
for (int i = 0; i < recordList.size(); i++) {
names.add(recordList.get(i).getName());
}
return names;
}
/**
* 判断集合是否包含此属性名称对应的属性值
*
* @param attrName
* 属性名
* @return
*/
public boolean isContainedAttrName(String attrName) {
boolean isContained = false;
if (this.attrValues.containsKey(attrName)) {
isContained = true;
}
return isContained;
}
/**
* 判断2个集合是否相等,比较包含的数据记录是否完全一致
*
* @param rc
* 待比较集合
* @return
*/
public boolean isCollectionSame(RecordCollection rc) {
boolean isSame = false;
for (Record r : recordList) {
isSame = false;
for (Record r2 : rc.recordList) {
if (r.isRecordSame(r2)) {
isSame = true;
break;
}
}
// 如果有1个记录不包含,就算集合不相等
if (!isSame) {
break;
}
}
return isSame;
}
/**
* 集合之间的交运算
*
* @param rc
* 交运算的参与运算的另外一集合
* @return
*/
public RecordCollection overlapCalculate(RecordCollection rc) {
String key;
String value;
RecordCollection resultCollection = null;
HashMap<String, String> resultAttrValues = new HashMap<>();
ArrayList<Record> resultRecords = new ArrayList<>();
// 进行集合的交运算,有相同的记录的则进行添加
for (Record record : this.recordList) {
for (Record record2 : rc.recordList) {
if (record.isRecordSame(record2)) {
resultRecords.add(record);
break;
}
}
}
// 如果没有交集,则直接返回
if (resultRecords.size() == 0) {
return null;
}
// 将2个集合的属性进行合并
for (Map.Entry entry : this.attrValues.entrySet()) {
key = (String) entry.getKey();
value = (String) entry.getValue();
resultAttrValues.put(key, value);
}
for (Map.Entry entry : rc.attrValues.entrySet()) {
key = (String) entry.getKey();
value = (String) entry.getValue();
resultAttrValues.put(key, value);
}
resultCollection = new RecordCollection(resultAttrValues,resultRecords);
return resultCollection;
}
/**
* 求集合的并集,各自保留各自的属性
*
* @param rc
* 待合并的集合
* @return
*/
public RecordCollection unionCal(RecordCollection rc) {
RecordCollection resultRc = null;
ArrayList<Record> records = new ArrayList<>();
for (Record r1 : this.recordList) {
records.add(r1);
}
for (Record r2 : rc.recordList) {
records.add(r2);
}
resultRc = new RecordCollection(null, records);
return resultRc;
}
/**
* 输出集合中包含的元素
*/
public void printRc(){
System.out.print("{");
for (Record r : this.getRecord()) {
System.out.print(r.getName() + ", ");
}
System.out.println("}");
}
}
KnowledgeSystem.java:
package DataMining_RoughSets;
import java.util.ArrayList;
import java.util.HashMap;
/**
* 知识系统
*
* @author zh
*
*/
public class KnowledgeSystem {
// 知识系统内的集合
ArrayList<RecordCollection> ksCollections;
public KnowledgeSystem(ArrayList<RecordCollection> ksCollections) {
this.ksCollections = ksCollections;
}
/**
* 获取集合的上近似集合
*
* @param rc
* 原始集合
* @return
*/
public RecordCollection getUpSimilarRC(RecordCollection rc) {
RecordCollection resultRc = null;
ArrayList<String> nameArray;
ArrayList<String> targetArray;
ArrayList<RecordCollection> copyRcs = new ArrayList<>();
ArrayList<RecordCollection> deleteRcs = new ArrayList<>();
targetArray = rc.getRecordNames();
// 做一个集合拷贝
for (RecordCollection recordCollection : ksCollections) {
copyRcs.add(recordCollection);
}
for (RecordCollection recordCollection : copyRcs) {
nameArray = recordCollection.getRecordNames();
if (strIsContained(targetArray, nameArray)) {
removeOverLaped(targetArray, nameArray);
deleteRcs.add(recordCollection);
if (resultRc == null) {
resultRc = recordCollection;
} else {
// 进行并运算
resultRc = resultRc.unionCal(recordCollection);
}
if (targetArray.size() == 0) {
break;
}
}
}
//去除已经添加过的集合
copyRcs.removeAll(deleteRcs);
if (targetArray.size() > 0) {
// 说明已经完全还未找全上近似的集合
for (RecordCollection recordCollection : copyRcs) {
nameArray = recordCollection.getRecordNames();
if (strHasOverlap(targetArray, nameArray)) {
removeOverLaped(targetArray, nameArray);
if (resultRc == null) {
resultRc = recordCollection;
} else {
// 进行并运算
resultRc = resultRc.unionCal(recordCollection);
}
if (targetArray.size() == 0) {
break;
}
}
}
}
return resultRc;
}
/**
* 获取集合的下近似集合
*
* @param rc
* 原始集合
* @return
*/
public RecordCollection getDownSimilarRC(RecordCollection rc) {
RecordCollection resultRc = null;
ArrayList<String> nameArray;
ArrayList<String> targetArray;
targetArray = rc.getRecordNames();
for (RecordCollection recordCollection : ksCollections) {
nameArray = recordCollection.getRecordNames();
if (strIsContained(targetArray, nameArray)) {
removeOverLaped(targetArray, nameArray);
if (resultRc == null) {
resultRc = recordCollection;
} else {
// 进行并运算
resultRc = resultRc.unionCal(recordCollection);
}
if (targetArray.size() == 0) {
break;
}
}
}
return resultRc;
}
/**
* 判断2个字符数组之间是否有交集
*
* @param str1
* 字符列表1
* @param str2
* 字符列表2
* @return
*/
public boolean strHasOverlap(ArrayList<String> str1, ArrayList<String>str2) {
boolean hasOverlap = false;
for (String s1 : str1) {
for (String s2 : str2) {
if (s1.equals(s2)) {
hasOverlap = true;
break;
}
}
if (hasOverlap) {
break;
}
}
return hasOverlap;
}
/**
* 判断字符集str2是否完全包含于str1中
*
* @param str1
* @param str2
* @return
*/
public boolean strIsContained(ArrayList<String> str1, ArrayList<String>str2) {
boolean isContained = false;
int count = 0;
for (String s : str2) {
if (str1.contains(s)) {
count++;
}
}
if (count == str2.size()) {
isContained = true;
}
return isContained;
}
/**
* 字符列表移除公共元素
*
* @param str1
* @param str2
*/
spublic void removeOverLaped(ArrayList<String> str1, ArrayList<String>str2) {
ArrayList<String> deleteStrs = new ArrayList<>();
for (String s1 : str1) {
for (String s2 : str2) {
if (s1.equals(s2)) {
deleteStrs.add(s1);
break;
}
}
}
// 进行公共元素的移除
str1.removeAll(deleteStrs);
}
}
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
Claims (9)
1.一种基于Rough Set的数据分析方法,其特征在于,包括离线建规则库和在线分析两部分;通过java技术实现,利用Rough Set法对定性与定量信息混合的变量进行规则提取,建立规则库;在线分析时,通过规则匹配法对在线数据进行规则匹配,进而获取在线数据蕴含的信息。
2.根据权利要求1所述的数据分析方法,其特征在于,该数据分析方法的操作步骤如下:
步骤1)数据预处理,根据定性化法将定量数据定性化;
步骤2)数据约简,根据数据约简法删除变量中的冗余变量,降低变量的冗余度;
步骤3)值约简,根据属性值约简法对约简后的数据进行规则提取,降低冗余度;
步骤4)将实时在线数据进行定性化处理后,通过规则匹配法在规则库中进行规则匹配,进而获得在线数据蕴含的信息。
3.根据权利要求2所述的数据分析方法,其特征在于,所述的步骤1)数据预处理,包括:
对数据库中的数据进行预处理,将不同量纲,不同维度的数据转换成统一标准的数据,降低因数据本身权重对规则提取的影响。
4.根据权利要求3所述的数据分析方法,其特征在于,所述的数据预处理采用基于布尔逻辑的预处理法和基于信息熵的预处理法。
5.根据权利要求2所述的数据分析方法,其特征在于,所述的步骤2)数据约简,包括:
根据等价关系对预处理后的数据进行约简,以便降低数据的冗余度,去除数据中的无用信息;采用约简法有:基于正域的约简法、基于区分矩阵的约简法和基于属性重要度的启发式约简法。
6.根据权利要求5所述的数据分析方法,其特征在于,所述的基于正域的约简法,是在保证相对正域不变的条件下,逐个删除条件属性的冗余属性直至寻求到最终结果;所述的基于区分矩阵的约简法,是将决策表知识通过区分矩阵中表达出来,从而删除冗余属性;所述的基于属性重要度的启发式约简法,通过计算条件属性相对于决策属性的重要度,删除不必要的属性。
7.根据权利要求2所述的数据分析方法,其特征在于,所述的步骤3)值约简,包括:
通过规则提取法对约简后的数据进行规则提取,挖掘数据内涵规则;采用的属性值约简法主要有:基于正域的约简法,基于区分矩阵的约简法和基于属性重要度的启发式约简法。
8.根据权利要求7所述的数据分析方法,其特征在于,所述的基于正域的约简法,在保证相对正域不变的条件下,逐个删除条件属性的冗余属性直至寻求到最终结果;所述的基于区分矩阵的约简法,将决策表知识通过区分矩阵中表达出来,删除冗余属性;所述的基于属性重要度的启发式约简法,通过计算条件属性相对于决策属性的重要度,删除不必要的属性。
9.根据权利要求2所述的数据分析方法,其特征在于,所述的步骤4)通过规则匹配法在规则库中进行规则匹配,进而获得在线数据蕴含的信息;包括:
利用获得的信息对实时数据进行预测,获得预期结果,以便进行实时调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810922536.7A CN109214514A (zh) | 2018-08-14 | 2018-08-14 | 一种基于Rough Set的数据分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810922536.7A CN109214514A (zh) | 2018-08-14 | 2018-08-14 | 一种基于Rough Set的数据分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109214514A true CN109214514A (zh) | 2019-01-15 |
Family
ID=64988532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810922536.7A Pending CN109214514A (zh) | 2018-08-14 | 2018-08-14 | 一种基于Rough Set的数据分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109214514A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678534A (zh) * | 2013-11-29 | 2014-03-26 | 沈阳工业大学 | 结合粗糙集和模糊推理的生理信息与健康相关性获取方法 |
CN104636492A (zh) * | 2015-03-04 | 2015-05-20 | 浪潮电子信息产业股份有限公司 | 一种基于模糊积分特征融合的动态数据分级方法 |
CN105718726A (zh) * | 2016-01-18 | 2016-06-29 | 沈阳工业大学 | 基于粗糙集的医疗辅助检查系统知识获取和推理方法 |
CN107169059A (zh) * | 2017-04-28 | 2017-09-15 | 北京理工大学 | 一种基于相似变精度粗糙集模型的知识推送规则提取方法 |
-
2018
- 2018-08-14 CN CN201810922536.7A patent/CN109214514A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678534A (zh) * | 2013-11-29 | 2014-03-26 | 沈阳工业大学 | 结合粗糙集和模糊推理的生理信息与健康相关性获取方法 |
CN104636492A (zh) * | 2015-03-04 | 2015-05-20 | 浪潮电子信息产业股份有限公司 | 一种基于模糊积分特征融合的动态数据分级方法 |
CN105718726A (zh) * | 2016-01-18 | 2016-06-29 | 沈阳工业大学 | 基于粗糙集的医疗辅助检查系统知识获取和推理方法 |
CN107169059A (zh) * | 2017-04-28 | 2017-09-15 | 北京理工大学 | 一种基于相似变精度粗糙集模型的知识推送规则提取方法 |
Non-Patent Citations (3)
Title |
---|
石云等: "基于Rough Set的空间数据分类方法", 《软件学报》 * |
谢小正: "数控机床主轴组件故障的知识发现研究", 《中国博士学位论文全文数据库(电子期刊)工程科技Ⅰ辑》 * |
黄国顺: "保正域的决策粗糙集属性约简", 《计算机工程与应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428053A (zh) | 一种面向税务领域知识图谱的构建方法 | |
Priss | Formal concept analysis in information science | |
CN111787090B (zh) | 一种基于区块链技术的智慧法治平台 | |
Hereth et al. | Conceptual knowledge discovery and data analysis | |
CN110109908B (zh) | 基于社会基础信息挖掘人物潜在关系的分析系统及方法 | |
Poleshchuk et al. | Comparative analysis of expert criteria on the basis of complete orthogonal semantic spaces | |
CN107533692A (zh) | 提供预测智能的个人助理 | |
Gerhana et al. | Comparison of naive Bayes classifier and C4. 5 algorithms in predicting student study period | |
Ding et al. | A new TRIZ-based patent knowledge management system for construction technology innovation | |
CN115982329A (zh) | 一种工程施工方案编制依据的智能生成方法及系统 | |
CN117151659B (zh) | 一种基于大语言模型的生态修复工程全生命周期追溯方法 | |
Zhang | Application of data mining technology in digital library. | |
CN115438199A (zh) | 一种基于智慧城市场景数据中台技术的知识平台系统 | |
CN111061679A (zh) | 一种基于rete和drools规则的科技创新政策速配的方法和系统 | |
Abel et al. | PetroGrapher: managing petrographic data and knowledge using an intelligent database application | |
Lee et al. | A form driven object-oriented reverse engineering methodology | |
Coupette et al. | Legal hypergraphs | |
CN109214514A (zh) | 一种基于Rough Set的数据分析方法 | |
Adrot et al. | Using social media data in emergency management: A proposal for a socio-technical framework and a systematic literature review | |
CN115080636A (zh) | 一种基于网络服务的大数据分析系统 | |
Wu | Review of government performance management in the big data era: Practice, issues and prospects | |
Diday | Symbolic Data Analysis and the SODAS project: purpose, history, perspective | |
Meskine et al. | A support architecture to MDA contribution for data mining | |
Xu et al. | Research on intelligent campus and visual teaching system based on Internet of things | |
Wang et al. | Construction of knowledge graph for internal control of financial enterprises |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190115 |