当前位置: 首页 > news >正文

机器学习算法——朴素贝叶斯和特征降维

一、常见概率计算

朴素贝叶斯算法是利用概率值进行分类的一种机器学习算法

  • 概率:一种事情发生的可能性,取值在[0,1]之间
    • 条件概率:表示事件A在另外一个事件B已经发生的条件下的发生概率 P ( A ∣ B ) P(A|B) P(AB)
    • 联合概率:表示多个条件同时成立的概率 P ( A B ) = P ( A ) ∗ P ( B ∣ A ) = P ( B ) ∗ P ( A ∣ B ) P(AB)=P(A)*P(B|A)=P(B)*P(A|B) P(AB)=P(A)P(BA)=P(B)P(AB)
    • 联合概率+条件概率
    • 相互独立:如果P(A,B)=P(A)P(B),则称事件A与事件B相互独立

二、朴素贝叶斯算法

  • 贝叶斯公式: P ( C ∣ W ) = P ( W ∣ C ) P ( C ) P ( W ) P(C|W)=\frac{P(W|C)P(C)}{P(W)} P(CW)=P(W)P(WC)P(C)

    • P ( C ) P(C) P(C)表示 C C C出现的概率,一般是目标值
    • P ( W ∣ C ) P(W|C) P(WC)表示 C C C条件下 W W W出现的概率
    • P ( W ) P(W) P(W)表示W出现的概, W W W一般是特征
  • 朴素贝叶斯在贝叶斯基础上增加:特征条件独立假设,即:特征之间是互为独立的,则 P ( W 1 , W 2 ∣ C ) = P ( W 1 ∣ C ) ∗ P ( W 2 ∣ C ) P(W_1,W_2|C)=P(W_1|C)*P(W_2|C) P(W1,W2C)=P(W1C)P(W2C)

  • 为了避免概率值为0(分母不能为0),我们需要在分子,分母分别加上一个数值,这就是拉普拉斯平滑系数的作用

    P ( F 1 ∣ C ) = N i + α N + α m P(F_1|C)=\frac{N_i+\alpha}{N+\alpha m} P(F1C)=N+αmNi+α

    • α \alpha α是拉普拉斯平滑系数,一般指定为1
    • N i N_i Ni F 1 F_1 F1中符合条件 C C C的样本数量
    • N N N是表示条件 C C C下所有样本的总数
    • m m m表示所有独立样本的总数

API

sklearn.naive_bayes.MultinomialNB(alpha=1.0)
- 朴素贝叶斯分类
-alpha:拉普拉斯平滑系数
  • 思路:使用jieba模块进行词频统计,然后进行机器学习

  • 流程

    1. 获取数据
    2. 数据基本处理
      • 处理数据y
      • 加载停用词
      • 处理数据x把文档分词
      • 统计词频矩阵 作为句子特征
    3. 准备训练集测试集
    4. 模型训练
      • 实例化贝叶斯 台南佳拉普拉斯平滑系数
      • 模型预测
    5. 模型评估

三、特征降维

  • 为什么要进行特征降维:特征对训练模型时是非常重要的,用于训练的数据集包含一些不重要的特征,可能导致模型泛化性能不佳
  • 特征降维的目的:指在某些特定条件下,降低特征个数;目前阶段常用的方法是 低方差过滤法,PCA(主成分分析)降维法,相关系数(皮尔逊相关系数,斯皮尔曼相关系数)

1.低方差过滤法

  • 概念:指的是删除方差低于某些阈值的一些特征
    • 特征方差小:特征值的波动范围小,包含的信息少,模型很难学习到信息
    • 特征方差大:特征值的波动范围大,包含的信息相对丰富,便于模型学习
  • API
sklearn.feature_seleciton.VarianceThreshold(threshold=0.0)

实例化对象用于删除所有低方差特征

variance_obj.fit_transform(X)

X:numpy array格式的数据[n_samples,n_features]

  • 返回值:训练集差异低于threshold的特征将会被删除(默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征)

2.主成分分析PCA

注意:在本身特征非常多的时候,不建议直接使用PCA进行处理,可以先使用低方差过滤法,过滤之后使用PCA进行处理

  • 概念:PCA通过对数据维数进行压缩,尽可能降低原数据的维数(复杂度)损失少量信息,在此过程中可能会舍弃原有数据,创造新的变量

  • API

    sklearn.decomposition.PCA(n_components=None)将数据分解为较低维数空间

    • n_components:小数表示保留百分之多少的信息;整数表示减少到多少特征
    • mypcaobj.fit_transform(X)
    • 返回值:转换后指定维度的array

3.相关系数

独立的两个变量一定是不相关的,不相关的两个变量不一定是独立的

(1)基础

  • 相关系数( r r r):反应特征列之间(变量之间)密切相关程度的统计指标(两个变量之间的线性相关性)

  • 常见的两个相关系数:皮尔逊相关系数,斯皮尔曼相关系数

  • − 1 ≤ r ≤ + 1 -1 \leq r \leq +1 1r+1:当 r > 0 r>0 r>0时,表示两变量正相关, r < 0 r<0 r<0时,两变量负相关; ∣ r ∣ = 1 |r|=1 r=1表示两变量完全相关, ∣ r ∣ = 0 |r|=0 r=0时表示两变量间无相关关系; 0 < ∣ r ∣ < 1 0<|r|<1 0<r<1表示两变量存在一定程度的相关

    ∣ r ∣ |r| r越接近于1,两变量间线性关系越密切; ∣ r ∣ |r| r越接近于0,表示两变量的线性关系相关越弱

  • 一般可按三级划分: ∣ r ∣ < 0.4 |r|<0.4 r<0.4为低度相关; 0.4 ≤ r ≤ 0.7 0.4 \leq r \leq 0.7 0.4r0.7为显著性相关; 0.7 ≤ ∣ r ∣ < 1 0.7\leq|r|<1 0.7r<1为高度线性相关

(2)皮尔逊相关系数

r = n ∑ x y − ∑ x ∑ y n ∑ x 2 − ( ∑ x ) 2 n ∑ y 2 − ( ∑ y ) 2 r=\frac{n\sum xy-\sum x\sum y}{\sqrt{n\sum x^2-(\sum x)^2}\sqrt{n\sum y^2-(\sum y)^2}} r=nx2(x)2 ny2(y)2 nxyxy

  • API
from scipy.stats import pearsonr

(3)斯皮尔曼相关系数

R a n k I C = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) RankIC=1-\frac{6\sum d_i^2}{n(n^2-1)} RankIC=1n(n21)6di2

  • n为等级个数,d为成对变量的等级差数
  • API
from scipy.stats import spearmanr

相关文章:

  • 名称 深度学习(监督学习) Iteration 一次 mini-batch 前向+反向传播更新 Epoch 所有数据集训练一遍。这两个概念不一样吗?
  • 图像分割技术:像素级的精准识别(superior哥深度学习系列第12期)
  • Vue3项目与桌面端(C++)通过Websocket 对接接口方案实现
  • GPIO简介(GPIO输出)
  • Metastore 架构示意图和常用 SQL
  • HINet: Half Instance Normalization Network for Image Restoration论文阅读
  • 使用Optimization tool优化后禁用windows更新批量的脚本
  • 前端加密当日
  • 怎样下载某个SCI期刊的endnote style?答:直接去endnote官网搜索期刊名称并下载即可
  • 面向对象 设计模式简述(1.创建型模式)
  • 16、企业预算管理(Budget)全流程解析:从预算编制到预算控制
  • git merge合并分支push报错:Your branch is ahead of ‘xxx‘ by xx commits.
  • 【unitrix】1.2 unitrix 物理量计算库(lib.rs)
  • AIAgent,Prompt,MCP是什么?
  • AUTOSAR图解==>AUTOSAR_TR_FrancaIntegration
  • 【测试开发】数据类型篇-迭代器和生成器
  • 【二分模版------左闭右闭】
  • Python爬虫实战:研究AutobahnPython相关技术
  • 亚马逊关闭Posts:站内社交梦碎,卖家流量策略急待重构
  • 【有源医疗器械检测的常见问题、整改方法、送检了解】
  • 网站网页制作教程/企业品牌网站营销
  • 做石油期货看什么网站/吉安seo招聘
  • 网站死链接查询/搜索引擎优化趋势
  • 网站开发毕业设计题目/免费的网站申请
  • dede网站改成自适应/渠道营销推广方案
  • 政府网站集约化建设十分重要/岳阳网站界面设计