实际的数据挖掘任务是对大量数据进行半自动或全自动分析,以发掘从前未知的且新奇的模式,如数据记录组(数据聚类)、异常记录组(异常检测)和依赖关系(关联规则挖掘,序列挖掘)。这通常涉及使用数据库技术,如空间索引。这些模式可以被看作是输入数据的一种汇总,并且可以用于进一步的分析,例如机器学习和预测分析。例如,数据挖掘的过程中可以把数据分成多个组,然后可以使用该步骤通过决策支持系统获得更准确的预测结果。数据收集、数据准备、结果解释和报告都不是数据挖掘步骤的一部分,而是作为附加步骤属于整个KDD过程。
如数据记录组(聚类分析ClusterAnalysis)、异常记录(异常检测AnomalyDetection)和依赖关系(关联规则挖掘AssociationRuleMining、序列模式挖掘SequentialPatternMining)。这通常涉及到使用数据库技术,如空间索引。这些模式可以被看作是输入数据的一种规律总结,可以用于进一步的分析,或者,例如,在机器学习和预测分析中。例如,通过数据挖掘可以出识别数据中的多个组,然后这些组可以通过使用决策支持系统来获得更准确的预测结果。数据收集、数据准备、结果解释和报告都不是数据挖掘步骤的一部分,而是整个KDD过程附加的步骤。
数据分析DataAnalysis和数据挖掘的区别在于,数据分析用于测试数据集上的模型和假设,例如,分析营销活动的有效性,而不是考虑数据量的多少;相反,数据挖掘使用机器学习和统计模型来发现“大量”数据中的秘密和隐藏的模式。
知识发现过程通常定义为以下几个阶段:
或一个简化的过程,包括:
一个由统计学家泰勒·维根TylerVigen操作的机器人进行数据挖掘所产生的数据,显然表明在拼字比赛中获胜的最佳单词与美国被毒蜘蛛杀死的人数之间有着密切的联系。但是显然这种趋势上的相似仅仅是一个巧合。
从数据中发现知识的最后一步是验证数据挖掘算法产生的模式是否存在于更广泛的数据集中。数据挖掘算法发现的并非所有模式都是有效的,因为对于数据挖掘算法来说,在训练集中发现一般数据集中没有的模式是很常见的,这叫做过拟合Overfitting。为了解决这个问题,评估时会使用一组没有用在训练数据挖掘算法中用到的测试数据。然后将学习到的模式应用到这个测试集TestSet中,并将结果输出与期望的输出进行比较。例如,试图区分“垃圾邮件”和“合法”邮件的数据挖掘算法将根据一组电子邮件训练集TrainingSett样本进行训练。训练完毕后,学到的模式将应用于未经训练的那部分电子邮件测试集数据上。然后,可以从这些模式正确分类的电子邮件数量来衡量这些模式的准确性。可以使用几种统计方法可以用来评估算法,如ROC曲线ROCcurves。
如果学习的模式不能达到预期的标准,那么就需要重新评估和修改预处理和数据挖掘的步骤。如果所学的模式确实符合所需的标准,那么最后一步就是对习得的模式进行解释并将其转化为知识。
关于数据挖掘的计算机科学会议包括:
数据挖掘专题也出现在许多数据管理/数据库会议上,如ICDE会议、SIGMOD会议SIGMODConference和关于超大数据库国际会议InternationalConferenceonVeryLargeDataBases。
人们曾努力为数据挖掘过程定义标准,例如1999年欧洲跨行业数据挖掘标准流程(CRISP-DM1.0)和2004年Java数据挖掘标准(JDM1.0)。这些程序的后续程序(CRISP-DM2.0和JDM2.0)的开发活跃于2006年,但此后一直停滞不前。Jdm2.0没有达成最终草案就被撤销了。
数据挖掘在任何有数字数据可用的地方都可以被使用。数据挖掘的著名例子可以在商业、医学、科学和监管领域都有数据挖掘的主要应用。
在收集数据之前,建议注意以下事项:
美国信息隐私立法,如HIPAA和《家庭教育权利和隐私法》(FERPA)仅适用于每一个此类法律所涉及的特定领域。美国大多数企业对数据挖掘的使用并不受任何法律的控制。
下面的应用程序可以使用免费/开源许可证。应用程序源代码也是对公众开放访问的。
下面的应用程序可以根据专有许可证提供。
有关从数据中提取信息(与分析数据相反)的详细信息,请参阅:
在人们急于寻找技术方案来解决全球复杂问题的同时,研究人员与其他工作人员也面临着因为依赖技术而丧失发现关键因素和因地制宜解决问题的能力的危险。未来,我们需要将更多的精力放在数据背后的人的身上,以设计开发可以应用于现实世界中的数据驱动应用。