急切式和懒惰式学习策略相结合的决策树分类模型
第29卷第5期
北 京 交 通 大 学 学 报
Vol.29No.5文章编号:1673-0291(2005)05-0092-06
急切式和懒惰式学习策略相结合的决策树分类模型
黄泽宇1,卢润彩2
(1.北京交通大学计算机与信息技术学院,北京100044;2.石家庄信息工程职业学院计算机系,河北050035)
摘 要:急切式学习策略和懒惰式学习策略有着不同的学习和分类机制.通过分析急切式学习策略
下的普通决策树模型和懒惰式学习策略下的懒惰式决策树模型,提出了一种新的决策树分类模型即Semi_LDtree.它生成的决策树的结点,如普通决策树一样,包含单变量分裂,但是叶子结点相当于一个懒惰式决策树分类器.这种分类模型保留了普通决策树良好的可解释性,实验结果表明它提高了分类速度和分类精确度,特别是在大的数据集合上效果更加明显.关键词:急切式学习策略;懒惰式学习策略;懒惰式决策树;朴素贝叶斯中图分类号:TP1811 文献标识码:A
ADecision_TreeClassifierHybridModelofEagerStrategyandLazyStrategy
HUANGZe_Yu1,LURun_Cai2
(1.SchoolofComputerandInformationTechnology,BeijingJiaotongUniversity,Beijing100044,China;2.DepartmentofComputer,ShijiazhuangInformationEngineeringVocationalCollege,Shijiazhuang050035,China)
Abstract:Theeagerstrategyandlazystrategyhavedifferentlearningandclassificationmechanism.Onthebasisofanalyzingregulardecisiontreeclassificationmodeladoptingeagerstrategyandlazydec-ision_treeclassificationmodeladoptinglazystrategy,weproposeanewdecision_treeclassificationmod-el,Semi_LDtree:thedecision_treenodescontainunivariatesplitsasregulardecision_trees,butthe
leavescontainlazydecision_treeclassifiers.Thisclassificationmodelretainsthegoodinterpretabilityofdecision_tree.Theexperimentalresultsshowthismodelhasthehigherclassificationaccuracyandfasterspeed,especiallyonthelargerdatabasestested.
Keywords:eagerstrategy;lazystrategy;lazydecision_tree;naÇveBayes 在数据挖掘和机器学习中分类是一项非常重要的基本任务.一般地,分类任务是依据某种分类模型,在具有类标的数据集合上学习出一个分类函数,即通常所说的分类器.该函数能够给由属性值序偶集所描述的待分类实例指派一个最适合的类标,从而可以应用于数据分类和预测.例如:银行部门可以建立一个分类模型,对贷款的安全级别和风险类型进行分类预测;销售部门可以在收集的客户资料上建立一个分类模型,来判断客户是潜在客户还是忠实客户.机器学习、数据挖掘、专家系统、统计学
[1,2]
和神经生物学方面的研究者们已经提出了许多的分类方法和技术,例如,朴素贝叶斯方法、贝叶斯
网络[1,2]、决策树[1,3,4]、决策表[4]、神经网络、K_最邻近以及支持向量机等.尽管众所周知,这些方法中没有一种分类方法在所有领域都是有效的,但是这些方法在不同的领域中各自起到了非常重要的作用.朴素贝叶斯方法由于具有坚实的数学理论基础[1,2]、决策树具有良好的可解释性[3,5],从而使得这两种分类方法成为机器学习和数据挖掘领域的研究热点.
[1,2]
收稿日期:2005-03-27
:(1980),女,.
第5期 黄泽宇等:急切式和懒惰式学习策略相结合的决策树分类模型
机器学习方法分为有监督的学习和无监督的学习.其中有监督的学习从学习过程的任务实施方式上可以分成两种极端的情况,即急切式学习策略和懒惰式学习策略.急切式学习策略在分类器训练阶段就建立将待分类实例映射到其预测类标上的一个有清晰假设的分类器.学习的过程是在训练数据集合上建立分类器的过程,它同分类过程是相分离的.普通决策树算法[3]就是典型的代表.它是迄今为止在实践中应用最为广泛的一种分类方法,采用自顶向下分而治之的策略[4,7].它在训练阶段根据训练实例集合建立了一棵整体上最优的树,这棵树被用来在测试阶段给未分类的实例指派最适合的类标.普通决策树具有良好的可解释性,分类速度快,但是它的剪枝过程非常烦琐,分类精确度也不是非常高.而懒惰式学习策略没有建立清晰的假设,分类过程就是利用训练集合将给定实例与其类标匹配起来的过程,学习过程和学习结果的应用过程是同时进行的.懒惰式决策树就是典型的代表.它的学习过程被推迟到分类一个给定测试实例时才进行.它从概念上为每一个测试实例建立一棵最优决策树.同时它用非常简单的办法很好地处理了测试实例有缺省值的问题.在小的数据集合上,它的分类精确度非常高,但是在某些大的数据集合上,特别是属性数目非常多的数据集合上,它的分类速度慢,内存消耗大.
在急切式学习策略和懒惰式学习策略的理论基础上,本文作者分析了急切式学习策略下的普通决策树模型和懒惰式学习策略下懒惰式决策树模型,吸取了这两种模型的长处,从一种新的角度提出了一种新的分类模型)))Semi_LDtree.它生成的决策树的结点,如普通决策树一样,包含单变量分裂,但是叶子结点相当于一个懒惰式决策树分类器.本文给出了Semi_LDtree模型的算法,并比较了Semi_LDtree、普通决策树、懒惰式决策树和朴素贝叶斯这4种分类器的分类精确度.
[6]
[6]
[3]
[6]
[6]
值,c表示类标.给定训练数据集合D={x1,x2,,,xn},分类任务的目标是对数据集合D进行分析,确定一个映射函数f:(A1,A2,,,An)yc,使
得对任意的未知类别的实例xi=(a1,a2,,,an)可标以适当的类标c[8].
分类方法中最为典型的是基于决策树的分类方法.它是从训练集合中构造出决策树,是一种有监督的学习方法.决策树的叶结点是类名,中间结点是带有分支的属性,每个分支对应该属性的某一可能取值.最为典型的决策树学习算法是ID3,它采用自顶向下分而治之的策略,能保证构造出一棵简单的树[4].C4.5算法也是构造决策树分类器的算法,它是ID3算法的扩展.
构建决策树最重要的是如何选择分裂属性.迄今为止人们已经提出了许多选择分裂属性的标准,例如,信息增益和增益比率[1,4]、Gini索引、Ko-lmogorov_Smirnov度量、基于Goodman_Kruskal关联索引[9]、G统计、最小描述长(MLP)[4]等.ID3算法采用了信息增益的标准,而C4.5算法采用的是增益比率的标准.
大多数现实数据集合都包含连续值属性.ID3算法只能处理枚举型属性,而C4.5算法将分类领域从枚举型属性扩展到连续值属性.处理连续值属性的方法之一是预先离散化.C4.5算法采取的方法是/两区间离散化0.首先排序属性值,使用信息增益度量计算出阈值,将属性值归类到两个区间,然后进行两路分裂[4,7].
使用最大信息增益来选择连续型属性的阈值,它使得对结果划分中的样本分类所需的信息量最小,并反映划分的最小随机性或/不纯性0.设S是s个数据样本的集合.假定类标属性有m个不同值,定义了m个不同类ci(i=1,,,m).设Si是类ci中的样本数.对一个给定的样本分类所需的期望信息为
I(S1,S2,,,Sm)=-i=1
[4,9]
1 决策树分类模型
分类是在一个作为输入的训练集合上学会一个分类函数或构造出一个分类模型,然后利用它对数据集合中没有类标的实例指派最适合的类标.训练集合是由一组数据实例构成,每个实例是一个由有关字段组成的特征向量,这些字段被称为属性,用于分类的属性被叫做类标,类标属性也就是训练集合的类别标记.一个具体的实例形式可以表示为(a1,,,n,(i)iEPilb(Pi)
m
(1)
式中,Pi是任意样本属于ci概率,并用Si/S估计.设连续值属性A的阈值为a,可以用阈值a将S划分为2个子集:S1={样本|属性值A的取值=a}.设Sij是子集Sj中类ci的样本数.根据由a划分成子集合的熵或期望信息为
1jmj
(S1j,,,Smj)(2)ESj=1
Sj,),
E(A)=
2
I(S1j,,,Smj)=-
北 京 交 通 大 学 学 报 第29卷
m
i=1
E
Pijlb(Pij)(3)
叶斯定理表示为
P(cj|a1,a2,,,an)=
P(a1,a2,,,an|cj)P(cj)
=
P(a1,a2,,,an)
(5)
式中,Pij=Sij/Sj是Sj中的样本属于类ci的概率.则属性在阈值a上的信息增益为
IG(Aa)=I(S1,,,Sm)-E(A)
(4)
换言之,IG(A)由于知道属性A的阈值a而导致的熵期望压缩[1].
在现实数据集合里,属性值缺省的现象很常见.处理缺省值的一个简单办法就是删除有缺省值的实例.另外一种方法是用一个简单值代替缺省属性值.ID3算法不能够处理这种情况.但是含有缺省值的实例通常提供了很多信息.因而C4.5算法保留有缺省值的实例,采取的方法是:当使用这个属性值有缺省的属性时,按照分裂分支下的训练实例数的比率将有缺省值的实例分成一定比率的碎片[4,7].
在训练集合上构造的普通决策树通常过适应训练数据,所以有必要对决策树进行修剪.一般的办法是估计错误率.通过比较子树的估计误差和修剪后的估计误差来决定是否修剪.为了提高分类器的精确度,C4.5算法采用了很多复杂的策略[4,7].采用决策树生成的分类器,生成可以理解的规则,因而可解释性非常好.而且决策树可以清晰地显示哪些属性比较重要,同时还可以处理枚举型属性和数值型属性.但是决策树技术本身也存在许多的不足之处,比如:它的修剪策略非常复杂,很难把握,而且特别费时;数值型属性比较难于处理.
A#P(cj)#P(a1,a2,,,an|cj)
式中,A是正则化因子,P(cj)是类cj的先验概率,P(cj|a1,a2,,,an)是类cj的后验概率,先验概率独立于训练样本数据,而后验概率反映了样本数据对类cj的影响.根据概率的链规则,式(5)可表示为
P(cj|a1,a2,,,an)=A#P(cj)#
FP(ai|
a1,a2,,,ai-1|cj)(6)
根据贝叶斯分类最大后验准则,给定某一实例xi=(a1,a2,,,an),贝叶斯分类器选择后验概率P(cj|a1,a2,,,an)最大的类c作为该实例的类标.当假定所有的属性变量都是相互类条件独立时,每个结点Ai只与类结点C相关联,因此,式(6)中的P(ai|a1,a2,,,ai-1,cj)可以简化为P(ai|cj).相对于其他分类器,朴素贝叶斯分类器的最大特点是不需要搜索,只需简单地计算训练例中各个属性值发生的频率数,就可以估计出每个属性的概率估计值,因而朴素贝叶斯分类器的效率非常高,分类速度快.但是其/属性独立性假设0在现实世界中大多数的数据集合上明显不成立,从而使其分类性能受到了限制[8].
大量的实验表明:懒惰式决策树分类器在大多数据集合上所得的分类精确度要比朴素贝叶斯分类器高,但是朴素贝叶斯分类器在大多数据集合上的分类速度要比懒惰式决策树分类器快.
通过仔细分析懒惰式决策树分类器和朴素贝叶斯分类器的分类原则,Semi_LDtree模型在分类的不同阶段采用不同的分裂属性选择标准.在建立决策树的阶段,我们利用朴素贝叶斯分类器效率高的优点,借鉴了Kohavi[5]提出的思想.对每一个候选属性按其取值划分当前结点的数据集合,计算朴素贝叶斯分类器在分裂后的数据集合上的交叉验证精确度值的权重和.取精确度值最大的属性作为最佳的分裂属性.当分裂后的子结点所包含的数据集合小到一定程度时,生成叶子结点,调用懒惰式决策树分类器,即利用朴素贝叶斯分类器分类速度快的优点计算当前结点分裂后分类精确度的悲观估计,来选择最佳的分裂属性和判断是否停止决策树的生长.
Semi_LDtree分类器利用分类精确度较高的懒惰式决策树分类器来代替仅仅预测一个简单类标的2 双重分裂属性选择标准
懒惰式决策树算法采用懒惰式学习策略.从概念上为每一个待分类实例建立一棵/最优0的树.建树过程中选择分裂属性时,它采用了信息增益的标准,选择信息增益值最大的属性作为最佳分裂属性.这种算法不受属性独立性假设的约束,在小的数据集合上,分类精确度较高.但是在大数据集合上,它的分类速度慢、内存消耗大、易被噪声误导等缺点,影响了其分类性能[6,10].
朴素贝叶斯分类模型是一种典型的基于统计方法的分类模型.贝叶斯定理是贝叶斯理论中最重要的一个公式,是贝叶斯学习方法的理论基础,它将事件的先验概率与后验概率巧妙地联系在一起,利用先验信息和样本数据信息确定事件的后验概率.令U={A1,A2,,,An,C}是离散随机变量的有限集,其中A1,A2,,,An是属性变量,类变量C的取值范围为{c1,c2,,,cl},ai是属性Ai的取值.(1,,
第5期 黄泽宇等:急切式和懒惰式学习策略相结合的决策树分类模型
器给测试实例分类时,将具有最大信息增益的属性作为分裂属性,即利用信息增益作为属性选择标准.
裂属性.在非叶子结点上,对每一个候选属性划分当前结点的数据集合,计算朴素贝叶斯分类器在分裂后的数据集合上的交叉验证精确度值的权重和,记为AW.假定当前结点的数据集合为S,候选属性为Ai.按照Ai划分数据集合S为n个子集合S1,,,Sn,在每个子集合Si上计算朴素贝叶斯分类器的交叉验证精确度,记为ACi,则
AWi=
i=1
3 Semi_LDtree分类模型
Semi_LDtree分类模型生成的分类器是一棵决策树,它与普通决策树的不同之处在于它的叶子结点是一个懒惰式决策树.在训练阶段,它利用训练实例集合递归迭代生成一棵决策树.当给定一个测试实例时,它从决策树根结点被分到一个叶结点时,懒惰决策树开始学习,学习结束后给出这个测试实例的类标.这种分类模型充分吸取了懒惰决策树在小的数据集合上分类精确度高这一优点,同时保留了普通决策树良好的可解释性,提高了分类速度和精确度.
本文提出的Semi_LDtree算法如下:
(1)学习算法.输入,带有类标的训练数据集合;输出,叶子结点是懒惰式决策树分类器的决策树.
¹计算当前结点的AC值.
º计算每个候选属性的AW值,选择一个AW值最大的属性作为最佳的分裂属性.
»如果AC值明显大于Max(AW)值,或者AC值大于给定值,或者当前结点的实例数目小于给定数目时,生成叶子结点,调用懒惰式决策树.否则按最佳分裂属性分裂当前结点,生成子结点.在每个子结点上递归建树.
(2)分类算法.输入,一个待分类的测试实例t;输出,实例t的类标.
¹判断当前结点是否为叶子结点,如果是,则在此叶子结点所包含的数据集合上调用懒惰式决策树分类器,返回测试实例t的类标.
º否则,假设当前结点的分裂属性为Ai.根据测试实例t的属性Ai值,选择当前结点的一个子结点作为当前结点.
»重复¹、º步骤,直到得到t的类标时才结束分类.
这个算法类似于经典的C4.5算法,采用的是自顶向下分而治之策略.但是叶子结点是一个分类精确度较高的懒惰决策树,而不是仅仅预测一个简单类标的结点.
对于数值连续值属性的阈值的产生,本文仍沿用C4.5提出的方法.首先将数据集合按照连续值属性排序选择多个分裂点.对每一个分裂点计算信息增益,选择信息增益最大的分裂点作为阈值点.
在选择最佳分裂属性上,本文采用双重分裂属,E
n
w(Si)w(S)ACi
(7)
式中,w(Si)为子集合Si的权重,w(S)为集合S的权重.取精确度AWi值最大的属性作为最佳的分裂属性.
对于什么时候停止决策树的生长而生成相当于懒惰式决策树的叶子结点,本文采取的方法是:在当前结点上计算朴素贝叶斯分类器的交叉验证精确度(记为AC),当这个精确度大于给定的限定值,或者这个精确度明显大于结点分裂后的子结点精确度权重和AW,或者找不到最佳的分裂属性时,停止决策树的生长,否则继续在此结点上分裂.
4 实验数据
懒惰决策树算法的提出者Friedman采用的实验数据集合都来自UCI[11]的数据文件.为了将Semi_LDtree算法和懒惰式决策树算法进行比较,本文也采用来自UCI的数据文件作为实验数据集合.表1描述了所使用的实验数据,分别列出了每个数据集合的实例个数、类值个数、属性个数、是否有缺省值以及属性的取值特征(R表示属性值取连续型属性值;N表示属性值取枚举型属性值).在所有的数据集合上评估分类器的性能所采用的方法都是10重交叉验证的方法.类值缺省的训练实例对建立分类器不起任何作用,所以在训练数据上建树的过程中本文删掉了它们.
5 实验结果分析
实验的主要目的是对Semi_LDtree、普通决策树、懒惰式决策树和朴素贝叶斯分类器在22个数据集合上比较它们的分类精确度.每个分类器的分类精确度是在测试集合上成功预测的实例占总实例的百分比,采用10重交叉验证估计分类器的精确度.每一个数据集合被分成10个没有交叉数据的子集,所有子集的大小大致相同.分类器训练和测试共10次;每一次,分类器使用去除一个子集的剩余数据作为训练集,然后在被去除的子集上进行测试.把所有
[6]
[6]
[12]
北 京 交 通 大 学 学 报 第29
卷
叉验证精确度.对普通决策树分类器,本文采用经典的C4.5算法,J48是在weka实验平台下它的具体实现程序.LazyDT是在weka实验平台下懒惰决策树的实现算法.在运行J48,LazyDT和朴素贝叶斯三种分类器时候,均采用其默认参数.
表2列出了Semi_LDtree,J48,LazyDT和朴素贝叶斯这4种分类器在22个实验数据上分类精确度的对比.其中,w代表在22个实验数据上Semi_LDtree的分类精确度比当前列对应的分类器的分类精确度高的实验数据的数目;t代表等于的数目;
表1 实验数据描述
Tab.1 Characteristicsofexperimentaldatasets
序号[***********][**************]22
数据集合AudioZoo
SolarflareLung_CancerLed
House_Votes_84Anneal
Balance_ScaleEchocardiogramGlassPidWineVehicleSynconSonarChess
Tic_Tac_ToeIrisGermanMushroomSolarflare_MCleveland
实例数目 1 1 181 [***********][***********][***********][1**********]
类值数目
[***********]232262
属性数目
[***********][***********]3
丢失值ynnynnynynnnnnnnnnnnny
属性取值N=69N=16N=9N=56N=24N=16N=32;R=6
R=4R=5;N=1R=9R=8R=13R=18R=60R=60N=39N=9R=4R=7;N=13N=22N=10R=6,N=7
表2 4种分类器的实验结果比较
Tab.2 Experimentalresultsbycomparingfourclassifiers
序号 数据集合[***********][**************]22
AudioZoo
SolarflareLung_CancerLed
House_Votes_84Anneal
Balance_ScaleEchocardiogramGlassPidWineVehicleSynconSonarChess
Tic_Tac_ToeIrisGermanMushroomSolarflare_MCleveland平均精确度w/t/l
朴素贝叶斯73.00893.06981.20950.00073.40089.88179.62190.40074.04549.53276.30296.62945.50894.66667.78886.75169.62496.00075.40095.82790.78482.508
[***********]0273
J4877.433692.079283.153350.000073.400095.172490.980076.640064.885565.887973.828193.820271.985891.666771.153892.196985.073196.000070.5000100.000095.104476.567781.251314/2/6
LazyDT80.088598.019883.225350.000073.000094.942585.746171.520067.938965.887974.479293.258472.222291.833374.038591.288685.490693.333367.9000100.000092.871673.597480.94008/14/0
Semi_LDtree80.973598.019883.225353.125073.000094.942592.539071.520067.938965.887974.479293.258472.222291.833374.038591.288692.588793.333370.0000100.000093.376577.557882.0522
78.725415/0/7
第5期 黄泽宇等:急切式和懒惰式学习策略相结合的决策树分类模型
l代表低的数目.从实验结果可以看出,Semi_LDtree在大部分实验数据集上取得了最好的分类性能.在22个实验数据集合上,Semi_LDtree的平均分类精确度为82.052;J48的平均分类精确度为81.251;LazyDT的平均分类精确度为80.940;朴素贝叶斯的平均分类精确度为78.725.对Audio,Lung_Can-cer,Anneal,Tic_Tac_Toe4个数据集合,Semi_LDtree的分类精确度均比J48,LazyDT和朴素贝叶斯分类器的精确度高.对Audio,Zoo,Anneal,Echocardio-gram,Sonar,Tic_Tac_Toe数据集合上,Semi_LDtree的分类精确度均比J48高出许多.对于所有的数据集合,因为Semi_LDtree分类器如不构建决策树就相当于一个LazyDT分类器,所以它的分类精确度不会比LazyDT分类器低.在Audio,Anneal,Tic_Tac_Toe,German,Solarflare_M这5个大数据集合上,Semi_LDtree体现了决策树的优势,它的分类精确度比LazyDT分类器的精确度高.
在本文的实验中判断是否停止决策树生长时,精确度值的限定值取为0.95,分裂前后精确度值的差取为-0.05,叶子结点最少的实例数目取为30.实际上,这3个值的变动均会引起Semi_LDtree分类器分类精确度上下浮动.
个参数.实际上,对于不同的数据集合,这3个值的取定也不同.是否有一个更好的判断停止决策树生长标准,这也是需要进一步研究的问题.参考文献:
[1]HanJ,KamberM.DataMiningConceptsandTechniques
[M].SanFrancisco:MorganKaufmannPublishers,2001.185-219.
[2]MitchellTM.MachineLearning[M].Boston:McGraw
Hill,1997.112-140.
[3]QuinlanJR.InductionofDecisionTrees[M].Hingham:
MachineLearning,1986.81-106.
[4]WittenIH,FrankE.DataMining:PracticalMachine
LearningToolsandTechniqueswithJavaImplementations[M].Seattle:MorganKaufmann,2000.
[5]KohaviR.ScalinguptheAccuracyofNaÇve_BayesClass-i
fiers:ADecision_TreeHybrid[A].In:SimoudisE,HanJ,FayyadUM,etal.Proc.ofthe2Int.lConf.onKnow-ledgeDiscoveryandDataMining[C].MenloPark:AAAIPress,1996.202-207.
[6]FriedmanJH,KohaviRon,YeogirlYun.LazyDecision
Trees[A].InProceedingsAAAI_96[C].MI:MITPress,1996,717-724.
[7]QuinlanR.C4.5:PragramsforMachineLearning[M].
California:MorganKaufmannPublishers,Inc,1993.[8]石洪波,王志海,黄厚宽,等.一种限定性的双层贝叶斯
分类模型[J].软件学报,2004,15(2):193-199.SHIHong_bo,WANGZhi_hai,HUANGHou_kuan,etal.ARestrictedDouble_LevelBayesianClassificationModel[J].JournalofSoftware,2004,15(2):193-199.(inCh-inese)
[9]SimoviciDanA.JaroszewiczSzymon[J].AMetricAp-proachtoBuildingDecisionTreesBasedonGoodman_KruskalAssociationIndex.PAKDD,2004.3056:181-190.
[10]ZhengZ,WebbGI.LazyLearningofBayesianRules
[J].MachineLearning,2000,41(1):53-84.[11]BlakeCL,MerzCJ.UCIRepositoryofMachineLearn-ingDatabases[EB/OL].http://www.ics.uci.edu/~mlearn/MLRepository.html.Irvine,CA:UniversityofCalifornia,DepartmentofInformationandComputerSc-ience,1998.
[12]weak,http://www.cs.waikato.ac.nz/ml/weka/.1998.
6 结论
懒惰式决策树分类模型分类精确度高.但在大的数据集合上,它的分类速度慢等缺点影响了它的分类性能.而决策树分类模型)))Semi_LDtree吸取
了懒惰式决策树分类模型的长处.它生成的决策树的结点,如普通决策树一样,但是叶子结点相当于一个懒惰式决策树分类器.这种分类模型同时保留了普通决策树良好的可解释性,懒惰式决策树在小的数据集合上分类精确度较高这两种优点.实验结果表明了它提高了分类速度和分类精确度,整体分类性能好,特别在大的数据集合上它的效果更加明显.
在Semi_LDtree的实现中,最佳分裂属性的选择标准是非常重要的.本文中采用双重分裂属性选择标准来选择最佳的分裂属性,是否还有其他更好的分裂标准,是下一步研究的一个内容.另外,在本文实验中判断停止决策树生长的条件时,选用了3