Data Mining上课的笔记

本文主要探讨了数据挖掘中分类遇到的问题,如欠拟合和过拟合,以及如何通过决策树和Weka工具进行解决。介绍了决策树的优缺点,评估指标如基尼指数和熵,以及Weka中的资料处理和建树步骤,包括Discretize、J48算法等,并讨论了不同测试方法的优缺点,如交叉验证。
摘要由CSDN通过智能技术生成

分类

分类会遇到的问题

underfitting和overfitting

学习不足:model太简单,训练集和测试集的error都很大
过度学习:随node数量上升(训练集正确度上升),测试集的正确度反而下降

  • 原因:杂讯(noise point)和资料不足

  • 解决:事前修剪、事后修剪(更好)

  • Occam’s Razor:偏向于简单的树,复杂的可能因为杂讯overfitting,所以评估model应包含对复杂度的评估

决策树

计算时间短、建构成本低、较小的树比较好理解、对简单的资料集准确度不亚于其他方法

  • Hunt’s Algorithm:最早的决策树
  • 其他
项目CARTID3C 4.5
国籍
作者布莱曼昆兰昆兰
年份198419861993
分支二分多分多分
变数x,y不限x名目,y名目x名目、连续,y名目
indexGiniEntropy,InfoGainEntropy,InfoGain
特色医疗(目标为连续型)连续最快最常用

评估混乱度

  • GINI
    G I N I ( t ) = 1 − ∑ j ( p ( j ∣ t ) ) 2 GINI(t)=1-\sum_{j}\bigl(p(j|t)\bigr)^2 GINI(t)=1j(p(jt))2
    G I N I ( s p l i t ) = ∑ i = 1 k n i n G I N I ( i ) GINI(split)=\sum_{i=1}^k \frac{n_i}{n} GINI(i) GINI(split)=i=1knniGINI(i)
  • Entropy
    在ID3或是C4.5中会用到,会分的很细很小但是pure
    E n t r o p y ( t ) = − ∑ j p ( j ∣ t ) l o g 2 p ( j ∣ t ) Entropy(t)=-\sum_{j} p(j|t)log_2p(j|t) Entropy(t)=jp(jt)log2p(jt)
    G A I N s p l i t = E n t r o p y ( p ) − ( ∑ i = 1 k n i n E n t r o p y ( i ) ) GAIN_{split}=Entropy(p)-\bigl(\sum_{i=1}^k\frac{n_i}{n}Entropy(i)\bigr) GAINsplit=Entropy(p)(i=1knniEntropy(i))
  • Error
    E r r o r ( t ) = 1 − m a x P ( i ∣ t ) Error(t)=1-maxP(i|t) Error(t)=1maxP(it)

评估决策树

  • 乐观法则 错 误 数 量 总 数 \frac{错误数量}{总数}
  • 悲观法则 错 误 数 量 + n o d e 数 量 ∗ 0.5 总 数 \frac{错误数量+node数量*0.5}{总数} +node0.5
  • REP(reduced error pruning):测试集正确率
  • Holdout Method:部分训练、部分测试
    • 缺点:
      • 资料太少不好分
      • 依赖于训练、测试资料集
      • 训练集太小则变动会很大
      • 训练集太大测试结果不准确
  • Random Subsampling
    • 重复使用holdout
    • 缺点
      • 无法控制用于训练和测试的数量
      • 偏向测试集
  • Cross-validation
    • 一部分用来训练、另一部分用来测试,然后互换(2-fold)
    • 极端:leave-one-out(n笔测试资料时的n-fold)
    • 优点
      • 最大化可以训练的资料
      • 测试集和训练集是完全区分的,且涵盖了所有资料
    • 缺点
      • 计算量很大
      • 估计的变动会很大

Weka使用

资料处理

Discretize

把资料离散化
attributeIndices:操作对象
bins:分组数量
useEqualFrequency:范围等宽还是数量相等

建树

test options

use training set:用训练集直接测试
supplied test set:使用测试集
cross-validation:交叉测试
percentage split:部分训练、部分测试

右键

save model:保存模型
re-evaluate model on current test set:用目前提供的test set重新测试
visualize-tree:建树视觉化
save result buffer:保存结果

J48

C4.5 Java version8
可以对nominal和continuous分类

confidenceFactor:可以被忽略的百分比
minNumObj:可以被忽略的个数
unPruned:是否修剪

选择要用的属性

在select attributes下,选择方法(cfs或是infoGain等)产生结果,再对原始资料进行处理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值