当前位置:   article > 正文

数值和标签的相关性分析_对标签的相关度分析代码

对标签的相关度分析代码

调研报告

基于数值的相关性分析

皮尔逊相关系数

用来衡量两个数据集合是否在一条线上面,主要用于衡量线性关系

实现方法

df.corr(method='pearson')

斯皮尔曼相关系数

主要用于解决名称数据和顺序数据相关的问题。适用于两列变量,而且具有等级变量性质具有线性关系的资料。

实现方法

df.corr(method='spearman')

肯德尔相关系数

它也是⼀种秩相关系数,不过它所计算的对象是分类变量。

实现方法

df.corr(method='kendall')

多元线性回归

包括两个或两个以上自变量的回归称为多元线性回归,利用多元线性回归模型可以根据多个因素来预测。

多元线性回归模型可以表示为如下所示的公式。


y=k_{0}+k_{1} x_{1}+k_{2} x_{2}+k_{3} x_{3}+\cdots

其中,x为特征变量(即标签),k为系数,数学上通过最小二乘法和梯度下降法来求解系数。

将输入输出的数值数据首先进行归一化,通过训练得到的系数k,就可以作为相关性系数。例如训练后得到的方程为y=0.07*x1+0.9 * x2+0.16 * x3, 可以认为y与x1的相关性系数为0.07,y与x2的相关性系数为0.9,y与x3的相关性系数为0.16

实现方法

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x,y)
print("系数:",model.coef_)
print("常数:",model.intercept_)

其他机器学习模型

几乎所有的机器学习模型都能够直接对数值数据进行预测,并能够得到不同变量的重要性(即相关系数)

基于标签的相关性分析

决策树

决策树模型是通过对一系列问题进行if/else的推导,最终实现相关决策。决策树是一类常见的机器学习方法,基于树结构来进行决策。

一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点。叶结点对应于决策结果,其他每个结点则对应于一个属性测试,每个结点包含的样本集合根据属性测试的结果被划分到子结点中。

离散属性

决策树的划分中,主要利用信息熵和信息增益

信息熵是度量样本集合纯度最常用的一种指标

假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,...),则D的信息熵定义为


\operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k}

信息熵值越小,纯度越高

再考虑到不同的分支结点包含的样本数不同,给分支结点赋予权重,样本数越多的分支结点的影响越大,可以由此计算出信息增益


\operatorname{Gain}(D, a)=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right)

信息增益越大,纯度提升越大

离散属性举例:

对于数据集

 

该数据集包含17个训练样例,用以学习一棵能预测是不是好瓜的决策树。

通过计算属性的信息增益以及分支节点的信息熵,可以得到如下的一棵决策树

 

连续属性

由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分,可采用二分法对连续属性进行处理。


T_{a}=\left\{\frac{a^{i}+a^{i+1}}{2} \mid 1 \leqslant i \leqslant n-1\right\}

对信息增益稍加改造
\begin{aligned} \operatorname{Gain}(D, a) &=\max _{t \in T_{a}} \operatorname{Gain}(D, a, t) \\ &=\max _{t \in T_{a}} \operatorname{Ent}(D)-\sum_{\lambda \in\{-,+\}} \frac{\left|D_{t}^{\lambda}\right|}{|D|} \operatorname{Ent}\left(D_{t}^{\lambda}\right), \end{aligned}

可通过同样的计算方式得到决策树

连续属性举例:

对于数据集

 

通过计算属性的信息增益以及分支节点的信息熵,可以得到如下的一棵简单的决策树

 

实现方法

对于连续型的属性,可以直接利用sklearn库快速实现

from sklearn.tree import DecisionTreeRegressor
model=DecisionTreeRegressor()
model.fit(x,y)
model.predict(xx)
# 特征重要性
model.feature_importances_

对于离散型,可根据下面这段伪代码实现

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/144961?site
推荐阅读
相关标签
  

闽ICP备14008679号