精华内容
下载资源
问答
  • 基于大数据分布式计算下关于环境保护方面的数据挖掘实现探究
  • 通过对DPI用户上网行为数据进行深入挖掘实现与网页URL分类体系的归类映射,是精准锁定上网用户兴趣偏好特征的关键。在梳理DPI数据自动挂载URL分类节点流程的基础上,重点研究了过程中涉及的网页信息提取、中文分词...
  • 针对传统中小企业信息系统在决策方面的不足,提出了适合中小企业特点的中小企业ERP系统的设计方案,并在此基础上论述了基于.NET的中小企业ERP系统的数据挖掘实现技术。
  • 数据挖掘:利用sql实现对电信行业客户建立流失预警模型
  • 数据挖掘技术是目前数据仓库领域最强大的数据分析手段。它的分析方法是利用已知的数据通过建立数学模型的方法找出隐含的业务规则,在很多的行业已经具有成功的应用。在应用领域主要有客户关系管理,客户欺诈分析,...
  • 基于严格数学计算的数据挖掘技术能够彻底改变以往电信企业在成功获得客户以后无法监控客户的流失,无法实现客户关怀的状况,把基于科学决策的客户关系管理全面引入到电信企业的市场/销售工作中来。  通常一个...
    随着世界经济的全球化、市场的国际化和我国加入WTO步伐的加速,国际化的市场环境要求国内的公众电信运营企业在经营管理上向国外先进的电信运营企业看齐,以迎接电信运营业的国际化竞争。同时随着国家改革的深化,国内电信业的市场环境已渐趋合理且竞争将日益加剧。国内、国际电信业的如此态势,对公众电信运营企业的服务内容、服务方式、服务质量、经营管理以及服务意识提出了严峻的挑战。企业的经营模式和服务体系正以客户的价值取向和消费心理为导向,真正体现“创造需求”、“引导消费”的现代客户服务意识与理念。
    

      在电信企业面向市场、面向国内外众多的竞争者、努力创造更高价值的同时,客户流失的不断增加,客户平均生命周期的不断缩短严重影响了电信企业的发展。那么,在激烈的市场竞争和不断变化的市场需求面前,如何最大程度的降低客户的流失率呢?常用的方法之一就是利用数据挖掘技术。

      数据挖掘技术是目前数据仓库领域最强大的数据分析手段。它的分析方法是利用已知的数据通过建立数学模型的方法找出隐含的业务规则,在很多行业已经具有成功的应用。在电信行业的应用领域主要有客户关系管理,客户欺诈分析,客户流失分析,客户消费模式分析,市场推广分析等。

      在客户流失分析系统中,如何应用数据挖掘技术?主要方式是根据以前拥有的客户流失数据建立客户属性、服务属性和客户消费数据与客户流失可能性关联的数学模型,找出客户属性、服务属性和客户消费数据与客户流失的最终状态的关系,并给出明确的数学公式。只要知道客户属性、服务属性和客户消费数据,我们就可以计算出客户流失的可能性。市场/销售部门可以根据得到的数学模型随时监控客户流失的可能性。如果客户流失的可能性过高,高于事先划定的一个限度,就可以通过多种促销手段提高客户的忠诚度,防止客户流失的发生,从而可以大大降低客户的流失率。基于严格数学计算的数据挖掘技术能够彻底改变以往电信企业在成功获得客户以后无法监控客户的流失,无法实现客户关怀的状况,把基于科学决策的客户关系管理全面引入到电信企业的市场/销售工作中来。

      通常一个完整的数据挖掘过程由业务问题定义,数据选择,数据清洗和预处理,模型选择与预建立,模型建立与调整,模型的评估与检验,模型解释与应用等多个步骤组成。这里我们以个人客户流失为例说明各个步骤的功能。

      1. 业务问题的定义

      业务问题的定义要求非常明确。任何不明确的定义都会严重影响模型的准确和应用时的效果。例如:在客户流失分析系统中,需要明确客户流失的定义。在客户流失分析中,主要有两个核心的变量:1.财务原因/非财务原因;2.主动流失/被动流失。客户的流失类别根据这两个核心变量可以分为四种。其中自愿的、非财务原因的流失客户往往是高价值的、稳定的客户。他们会正常支付自己的服务费用,并对市场活动有所响应。所以这种客户才是我们真正想保持的客户。而真正在分析客户流失的状况时,我们还必须区分公司客户与个人客户,不同服务的贡献率,或者是不同客户消费水平流失标准的不同。举例来说,对于用一种新服务替代原有服务的客户,是否作为流失客户?又或者,平均月消费额为2000元左右的客户,当连续几个月消费额降低到500元以下,我们就可以认为客户发生流失了,而这个流失标准就不能适用于原本平均月消费额就为500元左右的客户。实际上,在国外成熟的电信行业客户流失分析系统中,经常是根据相对指标判别客户流失。市场调查表明,通常大众的个人通信费用约占总收入的1%-3%,当客户的个人通信费用降低到远远低于此比例时,就可以认为客户流失发生。所以,客户流失分析系统必须针对各种不同的种类分别定义业务问题,进而分别进行处理。

      2. 数据选择

      数据选择包括目标变量的选择,输入变量的选择和建模数据的选择等多个方面。

      目标变量的选择

      目标变量表示了数据挖掘的目标。在客户流失分析应用目标变量通常为客户流失状态。依据业务问题的定义,我们可以选择一个已知量或多个已知量的明确组合作为目标变量。目标变量的值应该能够直接回答前面定义的业务问题。在客户流失分析系统中,我们实际面对的流失形式主要有两种:账户取消发生的流失和账户休眠发生的流失。对于不同的流失形式,我们需要选取不同的目标变量。对于账户取消发生的流失,目标变量直接就可以选取客户的状态:流失或正常。对于账户休眠发生的流失,情况就较为复杂。通常的定义是持续休眠超过给定时间长度的客户被认为是发生了流失。但是,这个给定时间长度定义为多长合适呢?另外一方面,每月的通话金额低于多少就可以认为是客户处于休眠状态?或者要综合考虑通话金额,通话时长和通话次数来划定流失标准?实际上,目标变量的选择是和业务问题的定义紧密关联在一起的。选择目标变量所要面对的这些问题,都需要业务人员给予明确的回答。

      输入变量的选择

      输入变量用于在建模时作为自变量寻找与目标变量之间的关联。在选择输入变量时,我们通常选择两类数据:静态数据和动态数据。静态数据指的是通常不会经常改变的数据,包括服务合同属性,如服务类型,服务时间,交费类型等等;和客户的基本状态,如性别,年龄,收入,婚姻状况,受教育年限/学历,职业,居住地区等等。动态数据指的是经常或定期改变的数据,如每月消费金额,交费纪录,消费特征等等。输入变量的选择应该在业务人员帮助下进行,这样才能选择出真正与客户流失可能性具有潜在关联的输入变量。业务人员经常在实际业务活动中深深感觉到输入变量与目标变量的内在联系,但是却无法以量化表示出来。在这种情况下,数据挖掘的工作往往能够得到良好的回报。在一时无法确定某种数据是否与信用卡流失可能性有关联时,应该选取,在后续步骤考察各变量分布情况和相关性时再决定取舍。

    建模数据的选择

      通常电信行业客户流失的方向有两种。第一种是客户的自然消亡。例如由于客户的身故,破产,迁徙,移民等原因,导致客户不再存在。或者是由于客户的升级,如GSM 升级为CDMA,造成特定服务的目标客户消失。第二种是客户的转移流失。通常指客户转移到竞争对手享受服务。显然第二种流失的客户才是电信企业真正关心的,对企业具有挽留价值的客户。因此,我们在选择建模数据时必须选择第二种流失的客户数据参与建模,才能建立出较精确的模型。

      3. 数据清洗和预处理

      数据清洗和预处理是建模前的数据准备工作。数据清洗和预处理的目的一方面保证建模的数据是正确和有效的;另一方面,通过对数据格式和内容的调整,使建立的模型更加准确和有效。数据整理的主要工作包括对数据的转换和整合,抽样,随机化,缺失值的处理等等。数据转换和整合的工作目的就是为了保证数据的质量和可用性。例如,样本数据中客户最终流失的数据比例较低,只占全部数据的8%。用这样的数据建模不容易找出流失了的客户的特征,建立精确的模型。我们可以按比例抽取未流失客户和流失了的客户,把两者合并构成建模的数据源。还有,在建模之前,我们建议把样本数据分为两到三部分。一部分用来建模,其他数据用来对模型进行修正和检验。一个模型在建立以后,需要用大量的数据对它进行检验。只有经过实际数据检验并被证明正确的模型才能得到充分的相信。如果一个未经检验的模型被贸然推广使用,就有可能由于模型的不精确带来应用的损失。所以我们通常会把数据分为两部分:2/3的数据用来建模,1/3的数据用来检验。

      4. 模型选择与预建立

      到底哪些变量和客户流失概率有密切关系呢?我们需要利用数据挖掘工具中的相关性比较功能找出每一个输入变量和客户流失概率的相关性。通过这样的比较选择,我们可以删除那些和客户流失概率相关性不大的变量,减少建模变量的数量。这样不仅可以缩短建立模型的时间,减小模型的复杂程度,而且有时还能够使建立的模型更精确。Oracle的数据挖掘工具能够提供包括决策树,神经网络,近邻学习,回归,关联,聚类,贝叶斯判别等多种建模方法。但是哪种方法最适合用于信用卡流失分析呢?我们可以使用多种建模方法,预建立多个模型,再比较这些模型的优劣,从而选择出最适合客户流失分析的建模方法。Oracle的数据挖掘工具提供了建模方法选择的功能,它能够预建立决策树,神经网络,近邻学习,回归等多种方法,十个模型供使用者选择。它还能自动判别哪一个是最优的模型,供使用者参考。在预建模之前,使用者还能够改变模型的参数,从而根据实际情况生成更好的模型。

      5. 模型建立与调整

      模型建立与调整是数据挖掘过程中的核心部分。通常这部分工作会由专业的分析专家完成。需要指出的是,不同的商业问题和不同的数据分布与属性,经常会影响到模型建立与调整的策略。而且在建模过程中还会使用多种近似算法来简化模型的优化过程。所有这些处理方法,对模型的预测结果都会产生影响。所以在模型建立与调整过程中,需要业务专家参与制定调整策略,避免不适当的优化导致业务信息的丢失。

      6. 模型的评估与检验

      模型的评估应该利用未参与建模的数据进行,这样才能得到准确的结果。如果我们使用建模的数据对模型进行检验,由于模型就是按照这些数据建立的,检验结果自然会很好。但是一旦运用到实际数据中,就会产生很大的偏差。所以我们必须使用未参与建模的数据对模型进行检验。检验的方法是对已知客户状态的数据利用模型进行预测,得到模型的预测值,和实际的客户状态相比较。预测正确值最多的模型就是最优的模型。

      7. 模型解释与应用

      得到最优的模型以后,我们需要业务人员针对得到的模型做出一些合理的业务解释。例如:我们可能发现在开户时长与的客户的流失可能性相关度较高。那么,业务人员利用业务知识可以解释为:由于客户在使用一定年限后需要换领新SIM卡,而换领新SIM卡的手续比较繁琐或时间周期过长,客户宁愿去申请新号码,导致流失可能性上升量。通过对模型做出合理的业务解释,我们就有可能找出一些以前没有发现,但实实在在存在的潜在的业务规律。找出这些规律后,就可以指导我们的业务行为。另一方面,如果真的能够根据业务知识解释我们得到的数学模型,也说明了这个数学模型在业务上的合理性,我们就更能够大胆应用于业务活动中了。

      模型的真正应用推广必须谨慎从事。我们可以先选择一个试点单位应用模型,避免由于模型的不精确导致高额的业务损失。试点的时间可以界定在半年到一年,期间必须随时注意模型应用的收益情况。一旦发生异常偏差,应该立即停止,检查偏差是由于模型本身的原因还是由于应用环境发生了重大变化,从而导致模型不再适用。如果是由于模型本身不准确造成的,可以对模型不精确的部分进行修正。如果是由于应用环境发生了重大变化,就应该重新进行建模工作。当试点结束后,这个模型被证明应用良好,就可以考虑大面积的推广。

      在大面积推广时应该注意的是,由于地区经济差异的原因,模型不能完全照搬。所以可以由总公司建立一个通用的模型,各分公司在此基础上利用本地数据进行进一步修正,得到适用于本地的精确模型。模型在应用一段时期后,或经济环境发生重大变化后,有可能模型的偏差会增大,这时候就可以考虑重新建立一个更合适的模型。

    展开全文
  • 数据挖掘(DM data mining)是从大量的,不完全的,有噪声的,模糊的,随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在的有用的信息和知识的过程。而我们的数据库中积累了大量的用户阅读的历史数据...

      

    一、前言

    数据挖掘(DM data mining)是从大量的,不完全的,有噪声的,模糊的,随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在的有用的信息和知识的过程。而我们的数据库中积累了大量的用户阅读的历史数据,这些数据中隐藏着大量重要信息,利用这些信息我们可以挖掘出用户对图书的偏好,从而推荐出更好的内容给用户。以下是用微软SQL SERVER 2008中的数据挖掘关联规则做的图书推荐的实例。

    二、问题分析

       关联规则是描述数据库中数据项之间所存在的关系的规则,即根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。在SQL SERVER 2008 中的关联规则用的是优先关联族算法,即FP-树频集算法[HPY00]。该算法在从大数据量中寻找频繁项集非常有效,在效率上较之Apriori算法有巨大的提高。具体运作时分两步分析:第一步通过已过精确计算的表达式寻找出项集;第二步是基于频繁项集产生规则。第二步需要的时间会明显少于第一步。下面我们了解下该算法涉及的一些关键指标: 

    指标名

    含义

    支持度

    (Support)

    支持度对项集形成有影响。

    用于描述项集出现频度的指标,最低支持度(Minimum_Support)意为只对达到指定频度的项集感兴趣,如果指定最低支持度为小于1的值则微软关联规则认为你只对频度达到指定百分比的项集感兴趣。比如0.03表示项集支持度只有占到总项集数的3%才能形成项集。最大支持度(Maximum_Support)则指定了项集出现频度的上限,超过上限的项集也不是我们感兴趣的。

    概率

    (Probability)

    概率对规则的形成有影响。

    一条规则中有A的条件下会有B(A=>B)的概率是指

    Probability (A => B) = Probability (B|A) = Support (A, B)/ Support (A)

    指定一定的最低概率值就可以限制形成的规则数。

    重要性

    (Importance)

    重要性对项集和规则形成均有影响。

    它的定义如下:

    Importance (A => B) = log (p(B|A)/p(B|not A))

    从定义知如果该值为0表示A和B没有关联性,正值表示一旦拥有A则再拥有B的概率会增长,负值表示一旦拥有A则再拥有B的概率会降低。

    三、数据准备

    由于我们的用户量级比较大并且书籍更新的频度较快的实际情况,我们每天只提出最近30天的数据进行分析,更好的给用户推荐及时的热门的图书。根据微软SQL SERVER 2008中的数据挖掘关联规则的要求,在训练关联规则模型时要有事例表和嵌套表。所谓事例表即存放鉴定一次事务的标识信息的表,我们用每个用户的ID为一个事务的标示(如果用户很活跃的情况也可以用一天的日期为一个事务的标示,如果有订单或购物的话,就用订单ID做事实表),这样每个订单可以为用户最近30天的阅读图书的信息。嵌套表即为事例表中事务的具体细节内容表,就是用户最近30天的阅读图书的信息的流水表。

    建立如下的数据结构:

    1. 用户表(事实表)

    用户ID(主键)

    1

    2

    ...

    2. 阅读记录流水表(嵌套表)

    流水表ID(主键)

    用户ID

    书籍名称

    1

    1

    图书1

    2

    1

    图书2

    3

    2

    图书1

    ...

    ...

    ...

    四、开发步骤

    我们用“SQL Server Business Intelligence Development Studio”建立图书推荐,具体步骤如下:

    (一)、训练模型

    1. 选择商业智能项目中Analysis Services项目,建立BookAS项目

    2. 建立数据源,指定我们的SQL Server 2008实例为数据源,并指定初始数据库为我们存放用户阅读的历史数据的数据库。

    3. 建立数据源视图,将上面提及的【用户表】和【阅读记录流水表】都选择进来。

    4. 建立挖掘结构

    ① 选择“从现有关系数据库或数据仓库”中训练和开发模型。

    ② 选择“Microsoft 关联规则”挖掘模型。

    ③ 指定【用户表】为事例表,【阅读记录流水表】为嵌套表。

    ④  设置主键为:用户ID(用户表),书籍名称(阅读记录流水表)。设置输入列维:书籍名称(阅读记录流水表)。设置可预测列为:书籍名称(阅读记录流水表)

    ⑤  为自己设定的规则命名。

    5.设置关联规则算法的参数。因为我们的阅读历史和书目数据量都较大,我们将最大项集计数(MAXIMUM_ITEMSET_COUNT)设置得大些4000000,以免达到上限而无法生成任何有效规则。根据用户的阅读习惯一般30天阅读不会超过50本,所以将最大项集容量(MAXIMUM_ITEMSET_SIZE)设置成50,我们认为至少有两次相同的项集出现才生成规则,所以设置最小支持度(MINIMUM_SUPPORT)为2。

    6.右键单击刚建立好的挖掘模型选“处理…”,开始训练模型。

    7.处理完毕后打开“挖掘模型查看器”选项卡,下面会出现“项集”、“规则”、“依赖关系网络”三个子选项卡。“项集”中会列出各项集支持度,大小和各项集包含的具体项; “规则”中则显示规则的预测概率、重要性和具体内容,我们通过查看该图可以了解训练出的规则的具体形式;“依赖关系网络”则将规则用图形化的方法表示出来,非常直观。

    8.打开挖掘模型查看器,选择查看器下拉列表中的“Microsoft 挖掘内容查看器”。找到NODE_DESCRIPTION字段查看第一条记录里的模型摘要信息,该信息对进一步调整参数有帮助。特别是里面的规则数(RULE_COUNT)如果偏少则对预测很不利,可以适当降低概率参数和重要度参数。调整参数后重复1-7步直到训练出满意的模型。

    9.给建立的挖掘模型添加一个角色并将只读权限赋给EveryOne成员(实际应用中要配置一个用户),如果不赋权则当ASP.NET程序访问数据库时会提示读取权限不足。

    五、 在线查询(我们做的是一个接口),主要代码:

    //创建数据库连接对象
    Microsoft.AnalysisServices.AdomdClient.AdomdConnection con = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection("Data Source=localhost;Catalog=bookAs; Integrated Security=SSPI");
    con.Open();
    string Sql ="SELECT FLATTENED TopCount(Predict([Book Name],INCLUDE_STATISTICS,EXCLUSIVE),$AdjustedProbability,5) "
    //我们在此使用调整后的概率($AdjustedProbability),因为如果几乎所有人在看了A书后又看B书,那么推荐B书的意义就不大了,调整后的概率会降低上面提及的B书的概率,从而给出更有意义的建议。
    + "FROM [AllInIt]"//AllInIt是自己建立的挖掘名称
    + "PREDICTION JOIN (SELECT ("
    + "SELECT '" + Request.QueryString["BookName"] + "' as [书籍名称]"//获取从前页传递过来的BookName参数
    + ") as [Book Name])"
    + "as T on [AllInIt].[Book Name].[书籍名称] = T.[Book Name].[书籍名称]";
    string strCommand = sql;
    Microsoft.AnalysisServices.AdomdClient.AdomdCommand cmd = (Microsoft.AnalysisServices.AdomdClient.AdomdCommand)con.CreateCommand();
    cmd.CommandText = strCommand;
    Microsoft.AnalysisServices.AdomdClient.AdomdDataAdapter da = new Microsoft.AnalysisServices.AdomdClient.AdomdDataAdapter(cmd);
    DataSet ds = new DataSet();
    ds.RemotingFormat = SerializationFormat.Binary;
    da.Fill(ds);
    //将获取的数据绑定到GridView控件        
    this.GridView1.DataSource = ds.Tables[0].DefaultView;
          this.GridView1.DataBind();
    con.Close();

     

    六、 如何配置通过Http访问SQL Server 2005 Analysis Services ,请查看Configuring HTTP Access to SQL Server 2005 Analysis Services on Microsoft Windows Server2003

    展开全文
  • 增加工业经验和领域背景知识,在数据挖掘的过程中,能够结合领域知识分析挖掘结果。生成令人信服的报告,并获得非常有趣的知识。   智能营销 例如通过销量预测。判断出火热快销产品。 利用火热...

    http://www.cnblogs.com/wentingtu/archive/2011/12/13/2286973.html

    什么是精准营销?

    段勇提出了两个目的

    1. 寻找目标用户群

    2. 个性化推荐

    方法:将用户行为来作为用户的特征,然后利用分类,聚类,关联,推荐模型来得到结果

    利用分类,聚类模型可以完成第一个任务

    而关联,协同过滤是现在比较流行的执行个性化推荐的方法

    关联挖掘可以寻找适合捆绑销售的货品,那么对于用户而言,可以根据其购物的历史来推荐货品

    而协同过滤是利用用户的购买信息,利用相似购物行为的用户的喜好相似的假设来建模个性化推荐模型

     

    增加工业经验和领域背景知识,在数据挖掘的过程中,能够结合领域知识分析挖掘结果。生成令人信服的报告,并获得非常有趣的知识。

     

    智能营销

    例如通过销量预测。判断出火热快销产品。

    利用火热产品来吸引新客户

    而通过个性化推荐来吸引老用户并解决长尾

    这个想法来自于团购上推出了一些火热却低利润的产品来吸引新客户,但发现由于每次客户购买团购都有预算的,常常买完了火热团购就走了,留下了许多长尾。

    我们从分析新客户和老客户的来源来做努力。


    展开全文
  • 一、 前言数据挖掘(DM data mining)是从大量的,不完全的,有噪声的,模糊的,随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在的有用的信息和知识的过程。而我们的图书馆的数据库中积累了大量的...

    一、    前言
    数据挖掘(DM data mining)是从大量的,不完全的,有噪声的,模糊的,随机的数据中,提取隐含在其中的,人们事先不知道的,但又是潜在的有用的信息和知识的过程。而我们的图书馆的数据库中积累了大量的读者借阅历史数据,这些数据中隐藏着大量重要信息,利用这些信息我们可以挖掘出读者对图书资源的借阅偏好模式。于是我们便利用微软SQL SERVER 2005中的数据挖掘关联规则模块建立一个在线书目推荐服务系统,以提高图书馆的服务水平。
    二、    问题分析
       关联规则是描述数据库中数据项之间所存在的关系的规则,即根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。在SQL SERVER 2005 中的关联规则用的是优先关联族算法,即FP-树频集算法[HPY00]。该算法在从大数据量中寻找频繁项集非常有效,在效率上较之Apriori算法有巨大的提高。具体运作时分两步分析:第一步通过已过精确计算的表达式寻找出项集;第二步是基于频繁项集产生规则。第二步需要的时间会明显少于第一步。下面我们了解下该算法涉及的一些关键指标:
    指标名 含义
    支持度
    (Support) 支持度对项集形成有影响。
    用于描述项集出现频度的指标,最低支持度(Minimum_Support)意为只对达到指定频度的项集感兴趣,如果指定最低支持度为小于1的值则微软关联规则认为你只对频度达到指定百分比的项集感兴趣。比如0.03表示项集支持度只有占到总项集数的3%才能形成项集。最大支持度(Maximum_Support)则指定了项集出现频度的上限,超过上限的项集也不是我们感兴趣的。
    概率
    (Probability) 概率对规则的形成有影响。
    一条规则中有A的条件下会有B(A=>B)的概率是指
    Probability (A => B) = Probability (B|A) = Support (A, B)/ Support (A)
    指定一定的最低概率值就可以限制形成的规则数。
    重要性
    (Importance) 重要性对项集和规则形成均有影响。
    它的定义如下:
    Importance (A => B) = log (p(B|A)/p(B|not A))
    从定义知如果该值为0表示A和B没有关联性,正值表示一旦拥有A则再拥有B的概率会增长,负值表示一旦拥有A则再拥有B的概率会降低。
    三、    数据准备
    我们收集了兰州商学院图书馆2002年到2005年的读者借阅数据,数据库具体关系如下:
     
    “一次借阅标识”意义在于形成用户借阅的项集,举例说:甲乙(单次借阅标识分别是1和2)两人一次都借了3本书丙(单次借阅标识分别是3)一次借了两本,得到如下表所示记录:
    借阅历史表
    借阅流水号(主键) 单次借阅标识(外键) 书名
    1 1 C#编程事件
    2 1 .Net核心编程
    3 1 .Net网络编程
    4 2 ASP.NET高级编程
    5 2 .Net核心编程
    6 2 .Net网络编程
    7 3 Windows API 速查手册
    8 3 C#编程事件
     
    级联表约束
    单次借阅标识表
    单次借阅标识(主键)
    1
    2
    3
    如此我们便只要通过“单次借阅标识”即可区分不同用户的单次借阅。因为在每次借阅书籍时会先在单次借阅标识表中插入自增标识码,当借阅历史表增加新记录时便使用刚插入的自增标识码作为“单次借阅标识”,这样两张表便形成一对多的关系。之所以要有上面两张表,是因为SQL SERVER 2005在训练关联规则模型时要有事例表和嵌套表。所谓事例表即存放鉴定一次事务的标识信息的表,用户完成他的一次借阅(当然可以不止借一本)就是一次事务,一次事务只用一个标识。我们设定单次借阅标识字段为自增字段就恰恰满足这点,所以单次借阅标识表就成了我们的事例表。嵌套表即为事例表中事务的具体细节内容表,其间用“单次借阅标识”来将各条记录形成项集。
    四、    开发步骤
    我们用“SQL Server Business Intelligence Development Studio”建立书目推荐服务程序,具体步骤如下:
    一、训练模型
    1.    选择商业智能项目中Analysis Services项目,建立BookHistoryAS项目
    2.    建立数据源,指定我们的SQL Server 2005实例为数据源,并指定初始数据库为我们存放借阅历史数据的数据库。
    3.    建立数据源视图,将上面提及的“借阅历史”表“单次借阅标识”表都选择进来。
    4.    建立挖掘结构
    ①        选择“从现有关系数据库或数据仓库”中训练和开发模型。
    ②        选择“Microsoft 关联规则”挖掘模型。
    ③        指定“单次借阅标识”表为事例表,“借阅历史”表为嵌套表。
    ④        按图(一)设定键列和可预测列。
     

     

    之所以设定书名为可预测列是为后面的关联预测作准备。
            为自己设定的规则命名。

    5.设置关联规则算法的参数。具体参数如图(二),各参数含义前面已做解释,在此不赘述。值得说明的是因为我们的借阅历史和书目数据量都较大,我们将最大项集计数(MAXIMUM_ITEMSET_COUNT)设置得大些400000,以免达到上限而无法生成任何有效规则。因为我校规定的单次借阅书籍上限是10本,所以将最大项集容量(MAXIMUM_ITEMSET_SIZE)设置成10,我们认为至少有两次相同的项集出现才生成规则,所以设置最小支持度(MINIMUM_SUPPORT)2

     

    6.右键单击刚建立好的挖掘模型选处理…”,开始训练模型。

    7.处理完毕后打开挖掘模型查看器选项卡,下面会出现项集规则依赖关系网络三个子选项卡。项集中会列出各项集支持度,大小和各项集包含的具体项; “规则中则显示规则的预测概率、重要性和具体内容,我们通过查看该图可以了解训练出的规则的具体形式;依赖关系网络则将规则用图形化的方法表示出来,非常直观,如图(三):

    8.打开挖掘模型查看器,选择查看器下拉列表中的“Microsoft 挖掘内容查看器”。找到NODE_DESCRIPTION字段查看第一条记录里的模型摘要信息,该信息对进一步调整参数有帮助。特别是里面的规则数(RULE_COUNT)如果偏少则对预测很不利,可以适当降低概率参数和重要度参数。调整参数后重复1-7步直到训练出满意的模型。
    9.给建立的挖掘模型添加一个角色并将只读权限赋给EveryOne成员,如果不赋权则当ASP.NET程序访问数据库时会提示读取权限不足。
    二、建立在线查询服务
    实现思路:我们建立两个ASP.NET页面,第一个是搜索页面负责从数据库模糊匹配用户输入的关键字提取相关书籍。当用户选择一本书后转到关联预测的页面,这个页面负责列出与被选书籍最相关的5本推荐书目,如果没有相关匹配规则则列出最受欢迎的5本书。

     //创建数据库连接对象
     
             Microsoft.AnalysisServices.AdomdClient.AdomdConnection con = new Microsoft.AnalysisServices.AdomdClient.AdomdConnection("Data Source=ELFSERVER;Catalog=booklib; Integrated Security=SSPI");
     
             con.Open();
     
             string Sql =
     
                 "SELECT FLATTENED TopCount(Predict([Book Name],INCLUDE_STATISTICS,EXCLUSIVE),$AdjustedProbability,5) "
     
     //我们在此使用调整后的概率($AdjustedProbability),因为如果几乎所有人在借了A书后又借B书,那么推荐B书的意义就不大了,调整后的概率会降低上面提及的B书的概率,从而给出更有意义的建议。
     
                 + "FROM [AllInIt]"//AllInIt是自己建立的挖掘名称
     
                 + "PREDICTION JOIN (SELECT ("
     
                 + "SELECT '" + Request.QueryString["BookName"] + "' as [书名]"//获取从前页传递过来的BookName参数
     
                 + ") as [Book Name])"
     
                 + "as T on [AllInIt].[Book Name].[书名] = T.[Book Name].[书名]";
     
             string strCommand = sql;
     
             Microsoft.AnalysisServices.AdomdClient.AdomdCommand cmd = (Microsoft.AnalysisServices.AdomdClient.AdomdCommand)con.CreateCommand();
     
             cmd.CommandText = strCommand;
     
             Microsoft.AnalysisServices.AdomdClient.AdomdDataAdapter da = new Microsoft.AnalysisServices.AdomdClient.AdomdDataAdapter(cmd);
     
             DataSet ds = new DataSet();
     
             ds.RemotingFormat = SerializationFormat.Binary;
     
             da.Fill(ds);
     
     //将获取的数据绑定到GridView控件       
     
     this.GridView1.DataSource = ds.Tables[0].DefaultView;
     
             this.GridView1.DataBind();
     
             con.Close();
      
     

    五、    结束语
    数据挖掘是数据库技术发展的结果,目前己经成功地应用于各个领域,但大部分集中在银行、金融、大型商业数据库等赢利性领域中,在高校、政府等一些非赢利性机构中应用很少,本文对关联规则的数据挖掘在高校图书馆系统中的应用进行了探索,并用SQL Server Business Intelligence Development Studio 和ASP.NET实现了基本功能。

    展开全文
  • 这个是数据仓库与数据挖掘的论文 是 Internet数据挖掘原理及实现方面的
  • 关于多维数据挖掘实现技术的很有用处的文章
  • 数据挖掘算法Java实现

    2016-10-20 11:23:38
    这是数据挖掘算法的Java实现,正在学习数据挖掘的同学可以参照这些算法对照书本学习。
  • Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现Web数据挖掘原理及实现
  • 利用数据挖掘算法解决聚类问题 采用了多种方式实现聚类 可以对聚类方式进行选择 供学习数据挖掘者参考
  • 精品文档可编辑 值得下载 基于HTML5的C4.5算法的可视化数据挖掘实现 引言为了使数据挖掘技术能满足不同层次的用户需要可视化数据挖掘技术被提出通过可视化的手段将数据挖掘过程的各个阶段展示给用户使用户能更好的...
  • 第22卷第8期2019年8月Vol.22No.8Aug.2019基于python的WEB数据挖掘技术实现与研究齐慧(山东科技职业学院信息工程系,山东潍坊261053)摘要:文章首先对web数据挖掘技术进行概括,分别从数据挖掘技术概念、技术应用优势...
  • 数据预处理将原始的真实数据库转换成适于数据挖掘的挖掘数据库,为挖掘算法更好的实现以及挖掘结果形象的显示打下了良好的基础。针对结构化数据讨论了数据预处理的两个目标:消除现实数据库中的数据缺陷;为数据挖掘做...
  • python 神经网络 数据挖掘 python实现的神经网络算法
  • 数据挖掘常用算法代码实现
  • 地理空间数据挖掘系统实现问题研究,杨莉,金俐伶,进行地理空间数据挖掘是一个复杂的工程,一个有效的系统的建立涉及到许多方面的问题,本文就实现思路、数据组织、数据接口、聚类
  • 数据挖掘实现流程

    2020-12-04 10:45:45
    即知识发现过程。分为数据准备、数据挖掘、模型评估与解释、知识运用四步。
  • 数据挖掘-数据分类 python实现 利用KNN实现性别判定 # -*-coding:utf-8-*- """ Author: Thinkgamer Desc: 代码4-5 利用KNN算法实现性别预测 """ import numpy as np class KNN: def __init__(self, k): # k...
  • 数据挖掘中apriori算法的实现,visual studio 2010实现的c++版,其中封装了apriori类,实现整个操作~
  • 利用数据挖掘技术对现有医院实验室信息管理系统(LIS)的大数据进分析,并利用WEB或手机APP的方式呈现给客户诊断结果。...采用数据挖掘技术对LIS数据分析后的结果精确高效,实现了真正意义上的检验数据共享。
  • VC++实现数据挖掘的关联规则
  • 那么图数据挖掘是干什么的呢?难道是开着挖掘机来进行挖掘?还是扛着锄头?下面讲讲什么是图数据挖掘。这个话题感觉比较沉重,以至于我敲打每个字都要犹豫半天,这里我说说我对图数据挖掘的理解。数据是一个不可数...
  • 数据挖掘与数据分析

    万次阅读 多人点赞 2018-05-28 13:58:14
    数据挖掘和数据分析都是从数据中提取一些有价值的信息,二者有很多联系,但是二者的侧重点和实现手法有所区分。 数据挖掘和数据分析的不同之处: 1、在应用工具上,数据挖掘一般要通过自己的编程来实现需要掌握编程...
  • 数据挖掘与知识发现(KDD)聚类算法PAM的MATLAB实现

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,204
精华内容 4,081
关键字:

数据挖掘实现