挖掘建模

挖掘建模算法

  • 通过数据探索于数据预处理,获得了能够直接建模的数据..根据挖掘目标和数据形式能够创建分类与预测,聚类分析,关联规则,时序模式和误差检测等模型.帮助企业提取数据汇总蕴含得商业价值,提升企业得竞争力.
  • 分类和预测问题得两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是创建连续值函数模型,预测给定自变量对应得因变量得值
  • 实现过程:
    1. 分类:
      1. 分类是构造一个分类模型,输入样本得属性值,输出对应得类别,将每一个样本映射到预先定义好 得类别.
      2. 分类模型创建再已有类标记得数据集上,模型再已有样本上得准确率能够方便得计算,因此分类属于有监督得学习.
    2. 预测
      1. 预测是指创建两种或两种以上变量相互依赖得函数模型(线性回归...),而后进行预测或控制
    3. 实现过程:
      1. 分类和预测得实行过程相似,
      2. 分类算法有两步过程:第一步是学习步,经过概括分析训练样本集来创建分类规则;第二步是分类步,先用已知得测试样本集评估分类规则得准确率,若是准确率是能够接受的,则使用该模型对未知类标号的待测样本集进行预测.
      3. 预测模型的实现也有两步,第一步是经过训练集创建预测属性(数值型)的函数模型,第二步再模型经过检验后进行预测或控制
  • 经常使用的分类与预测算法
  • 算法名称
    算法描述
    回归分析 回归分析是肯定预测属性(数值型)与其余变量之间相互依赖的定量关系最经常使用的统计学方法,包括线性回归,非线性回归,Logistic回归,岭回归,主成分回归,偏最小二乘回归等模型
    决策树 决策树采用自顶向下的传递方式,在内部节点机型属性值的比较,并根据不一样的属性值,从该节点向下分支,最终获得的叶节点是学习划分的类
    人工神经网络 人工神经网络是一种模仿大脑神经网络结构和功能而创建的信息处理系统,表示神经网络的输入输出变量之间关系模型
    贝叶斯网络 贝叶斯网络又称信度网络,是bayes方法的扩展,是目前不肯定是指表达和推理领域最有效的理论模型之一
    支持向量机 支持向量机是一种经过某种非线性映射,把低维的非线性可转化为高维的线性可分,在高维空间进行线性分析的算法
  • 回归分析:网络

    • 回归分析是经过创建模型来研究变量之间相互关系的模切程度,结构状态及进行模型预测的一种有效的工具,在工商管理,经济,社会,医学和生物学等领域应用十分普遍.从19世纪初高斯提出最小二乘估计起,回归分析已有200多年,从经典的回归分析到近代的回归分析方法.
    • 回归模型名称
      使用条件
      算法模型
      线性回归 因变量与自变量是线性关系 对一个或多个自变量和因变量之间的线性关系进行建模,可用最小二乘法求解模型系数
      非线性回归 因变量与自变量之间都是线性关系 对一个或多个自变量和因变量之间的非线性关系进行建模.若是非线性关系能够经过简单的函数变换转化成线性关系,用线性回归的思想求解;若是不能转化,用非线性最小二乘方法求解
      Logistic回归 因变量通常有1和0(是否)两种取值 是广义线性回归模型的特例,利用Logistic函数将因变量的取值范围控制在0和1之间,表示取值为1的几率
      岭回归 参与建模的自变量之间具备多重共线性 是一种改进最小二乘估计的方法
      主成分回归 参与建模的自变量之间具备多重共线性 主成分回归是根据主成分分析思想提出来的,是对最小二乘法的一种改进,它是参数估计的一种有偏估计.能够消除自变量之间的多重共线
    • 线性回归模型是相对简单的回归模型,可是一般因变量和自变量之间呈现某种曲线关系,就须要创建非线性回归模型
    • Logistic回归属于几率型非线性回归,分为二分类和多分类的回归模型.对于二分类和多分类的回归模型.对于二分类的Logistic回归,因变量y只有"是,否"两个取值,记为1和0.假设在自变量x1,x2,...xp做用下,y取"是"的几率是p,则取"否"的几率是1-p,研究的是当y取"是"发生的几率p与自变量x1,x2,...xp的关系
    • 当自变量之间出现多重共线性时,用最小二乘估计的回归系数将会不许确,消除多重共线性的参数改进的估计方法主要有岭回归和主成分回归.
    • Logistic回归分析介绍
      • Logistic回归模型中的因变量的只有1-0(若是是否,发生和不发生)两种取值.假设在p个独立自变量x1,x2,...xp做用下,记y取1的几率是p=P(y=1|X),取0几率是1-p,取1和和取0的几率之比为p/(1-p)称为事件的优点比,对odds取天然对数即得Logistic变换
      • 当p在(0,1)之间变换时,odds的取值范围是(0,+œ),则ln(p/1-p)的取值范围是(-œ, +œ).
    • Logistic(回归模型)
      • Logistic回归模型是创建ln(p/1-p)与自变量的线性回归模型.
      • Logistic回归模型为:
        • ln(p/1-p) = ß0 + ß1 + ß2 + ß3 + ... + ßpxp + ε
        • 由于ln(p/1-p)的取值范围是(-œ, +œ),这样,自变量x1,x2,x3,...xp可在任意范围内取值.
      • Logistic回归模型的解释
        • β0:在没有自变量,即x1,x2,x3,...,xp所有取0,y=1与y=0发生几率之比的天然对数
        • β1:某自变量xi变化时,即xi = 1, 与xi=0相比,y=1优点比的对数
    • # -*- coding:utf-8 -*-
      
      import sys
      
      reload(sys)
      sys.setdefaultencoding("utf-8")
      
      """
      逻辑回归,自动建模
      """
      
      import pandas as pd
      data = pd.read_csv("./bankloan.csv")
      
      x = data.iloc[:,:8].as_matrix()
      print("x",x)
      y = data.iloc[:5].as_matrix()
      print("y",y)
      
      from sklearn.linear_model import LogisticRegression as LR  # 为何????
      from sklearn.linear_model import RandomizedLogisticRegression as RLR
      
      rlr = RLR()  # 创建随机逻辑回归模型, 筛选变量
      rlr.fit(x, y)  # 训练模型(这是把x,y这两个参数进行训练)
      
      rlr._get_support_mask()  # 获取筛选特征结果,也能够经过.scores_方法获取各个特征的分数
      print(u'经过随机逻辑回归模型筛选特征结束')
      print(u'有效特征为:%s' % ",".join(data.columns[rlr._get_support_mask()]))
      
      x = data[data.columns[rlr._get_support_mask()]].as_matrix()  # 筛选好特征
      
      lr = LR()  # 创建逻辑回归模型
      lr.fit(x, y)  # 用筛选好后的特征数据来训练模型
      print(u'逻辑回归模型训练结束.')
      print(u'模型的平均正确率为:%s' % lr.score(x, y))  # 给出模型的平均正确率

       

      • 递归特征消除的主要思想是反复的构建模型(如SVM或者回归模型)而后选出最好的(或者最差的)特征(能够根据系数来选),把选出来的特征放到一边,而后在剩余的特征上重复这个过程,直到遍历全部特征,这个过程当中特征白消除的次序就是特征的排序,所以,这是一种寻找最优特征子集的贪心算法.Scikit-Learn提供了REF包,能够用于特征消除,还提供了RFECV,能够经过交叉验证来对特征进行排序
      • 稳定性选择是一种基于二次抽样和选择算法相结合较新的方法,选择算法能够是回归SVM或其余相似的方法.它的主要思想是在不一样的数据子集和特征子集上运行特征选择算法,不断重复,最终汇总特征选择结果.好比,能够统计某个特征被认为是重要特征的频率(被选为重要的特征的次数以它所在的子集被测试的次数).在理想状况下,重要特征的得分会接近100%.稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近0,Scikit-Learn在随机Lasso和随机逻辑回归中有对稳定性选择的实现
      • 从上面的结果能够看出,采用随机逻辑回归剔除变量,分别剔除了x2,x8,x1,x5,最终构建的模型包含的变量为常量x3,x4,x6,x7.在创建随机逻辑回归模型时,使用默认的阈值0.25,咱们能够用RLR(selection_threshold=0.5)手动设置阈值.此外,在本例中,使用随机Lasso,甚至仅仅简单地采用F回归(f_rgression)也可以获得相似的结果.
      • 逻辑回归本质上仍是一种线性模型,所以这里结果具备比较强的线性相关性,然而被筛选掉的变量并不必定就跟结果没有关系,由于他们之间有可能时非线性关系,所以,咱们须要根据实际的背景对筛选结果进行分析,对于非线性关系的变量筛选方法有决策树,神经网络等.