挖掘建模
- 经过数据探索于数据预处理,得到了可以直接建模的数据..根据挖掘目标和数据形式可以建立分类与预测,聚类分析,关联规则,时序模式和偏差检测等模型.帮助企业提取数据汇总蕴含得商业价值,提高企业得竞争力.
- 分类和预测问题得两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应得因变量得值
- 实现过程:
- 分类:
- 分类是构造一个分类模型,输入样本得属性值,输出对应得类别,将每个样本映射到预先定义好 得类别.
- 分类模型建立再已有类标记得数据集上,模型再已有样本上得准确率可以方便得计算,所以分类属于有监督得学习.
- 预测
- 预测是指建立两种或两种以上变量相互依赖得函数模型(线性回归...),然后进行预测或控制
- 实现过程:
- 分类和预测得实行过程类似,
- 分类算法有两步过程:第一步是学习步,通过归纳分析训练样本集来建立分类规则;第二步是分类步,先用已知得测试样本集评估分类规则得准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测.
- 预测模型的实现也有两步,第一步是通过训练集建立预测属性(数值型)的函数模型,第二步再模型通过检验后进行预测或控制
- 分类:
- 常用的分类与预测算法
-
算法名称算法描述
回归分析 回归分析是确定预测属性(数值型)与其他变量之间相互依赖的定量关系最常用的统计学方法,包括线性回归,非线性回归,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)也能够得到类似的结果.
- 逻辑回归本质上还是一种线性模型,因此这里结果具有比较强的线性相关性,然而被筛选掉的变量并不一定就跟结果没有关系,因为他们之间有可能时非线性关系,因此,我们需要根据实际的背景对筛选结果进行分析,对于非线性关系的变量筛选方法有决策树,神经网络等.