【摘要】分类作为数据挖掘的一种重要技术开始应用到旅游信息智能服务领域,帮助旅游机构为游客推荐旅游信息,提供满足其需求的旅游服务。本文将分类集成算法引入旅游信息智能服务平台,设计并实现了旅游信息的智能推荐。实验使用贵州省旅游局提供的旅游数据作为数据集,验证算法的分类效果。在此基础上给出分类集成算法在平台上的应用实例,说明利用高性能的分类集成算法能帮助旅游机构快速地为游客提供适合的旅游信息推荐,辅助制定旅游计划。
【关键词】分类集成;准确率;旅游信息推荐
引言
随着旅游资源不断丰富,人们对于旅游信息和旅游服务的需求日益增加。游客面对海量的旅游信息,在选择旅游资源的时候常常存在很大的盲目性和随意性。同时,旅游机构为了增加竞争力和经营业绩,也迫切需要提高旅游服务质量。近年来,随着国内旅游行业的迅速发展,数据挖掘技术已经应用到旅游信息服务领域,各类旅游服务和旅游信息推荐系统应运而生。文献[4]中为辅助旅游机构向游客推荐旅游目的地,设计了一种旅游信息智能推荐系统(TIRS)。文献[5]中根据旅游服务信息的特点,提出了一种综合信息检索、联机分析处理和数据挖掘等多种技术的旅游智能推荐(TSIR)系统;对于贵州省这类旅游资源丰富、少数民族聚居的地域,旅游产业在经济发展中占据了举足轻重的地位。在旅游信息服务平台中引入高性能的分类集成算法,实现根据游客的特征和偏好进行个性化的旅游信息推荐,充分满足游客的个性化需求。研究分类集成算法在旅游信息服务平台中的应用,对于提高省内旅游行业的软环境服务水平,加快旅游信息化建设,实现由传统旅游业向现代旅游业的跃升,都有着重要的意义。
图1 生成旅游信息推荐模型的流程图
1.旅游信息推荐过程
为游客推荐旅游信息可以视为一个分类问题。旅游机构会根据当地的旅游资源推出相应的旅游项目、旅游景区和旅游产品,同时也会保存以往大量游客的个人基本信息及其选择的旅游信息的历史记录。将这些原始数据进行预处理之后入库,通过特征选择算法筛选出对于推荐旅游信息起作用并且适合分类算法的属性构成数据集。将需要推荐的旅游信息作为训练样本的目标属性,样本的其余属性则视为影响目标属性确定的决策属性,然后在训练集上使用分类算法或分类集成算法生成分类模型。检测分类模型,如果该模型达到分类准确率的要求就将其入库。使用分类集成算法训练得到旅游信息推荐模型的过程如图1所示。
适用于分类算法或分类集成算法的旅游信息有很多种,如旅游项目、旅游景区(点)、旅行社、旅游产品等,这些数据通过属性筛选以后都可以进行智能推荐。
2.分类集成算法的描述
流行的分类集成算法有很多,本文选择了一种适用于旅游信息推荐的分类集成算法——Adaboost.M1。该算法的基本思想是:首先赋予所有训练样本相同的权值,然后应用C4.5决策树算法在数据集上生成一个分类器。根据该分类器的分类结果对每个样本重新加权。调整样本的权重,增加错误分类样本的权重,同时减少正确分类样本的权重。于是得到一组权重较低的“容易对付”的样本和另一组权重较高的“难以对付”的样本。在后继的迭代中分类器重点处理那些难以对付的样本,使其能实现正确分类。最后,依据新分类器的分类结果调整样本的权重。在每次迭代之后,权重反映了当前构建的分类器对样本错误分类的难易程度。通过对每个样本分类难度的估计,从而得到一组互补型的专家,并采用加权投票的方法来预测新样本的类别。
Adaboost.M1算法的过程描述如下。
生成模型
begin
(1)每个训练样本的权重均赋予相同的值。
(2)for i=1,2,…,t do
1将C4.5算法应用于加权的训练集上得到并保存结果模型。
2计算模型在加权训练集上的误差e。
3if (e==0)||(e>=0.5) then exitendif
4for j=1,2,…,n do
if 模型将样本正确分类 then
将样本权重乘以e/(1-e)
endif
5对每一个样本的权重进行正常化处理。
end for
end for
end
分类
begin
(1)每个类的权重均赋为0。
(2)for i=1,2,…,t do
给模型所预测的类赋予权重:。
end for
(3)返回权重最高的类。
end
3.算法性能验证
从数据库表trainingdata_1中选取5000个样本,每个样本包含18个属性。分别按20%、40%、60%和80%四种比率划分训练集,组成训练集1、训练集2、训练集3和训练集4。为了比较AdaBoost.M1算法与几种流行的分类算法的分类预测能力,本文对4种分类算法分别在4个训练集中生成的分类模型进行测试,对比结果如图2所示。
根据图2可得:(1)AdaBoost.M1算法在4个训练集生成的分类模型中均得到了最高的分类准确率,并且随着训练数据比例的增大,算法的正确率呈上升趋势。说明针对旅游数据而言,AdaBoost.1算法具有比其他3种分类算法更好的分类效果。(2)随着训练集样本数目的不断增加,AdaBoost.M1算法生成的分类模型的准确率变化范围最小,说明该算法得到的分类模型受训练集划分比例的影响最小,算法的稳定性好。实验结果说明,分类集成算法AdaBoost.M1在旅游信息分类中能够取得较高的准确率,得到更好的分类效果。
图2 4种分类算法的准确率对比
4.算法应用
4.1 系统结构
旅游信息智能服务平台的结构如图3所示。该平台由三个逻辑层次构成,分别是数据层、业务逻辑层和应用层。平台采用三层模式结构,后台使用SQL SERVER 2008数据库用以存储需要进行挖掘的数据,在tomcat 5.0服务器上进行相应的挖掘以及模型的生成,在客户机上访问相应的WEB页面即可运行旅游信息智能服务平台的客户端。
旅游信息智能服务平台主要实现以下功能:(1)界面功能:平台面向的用户分为游客、旅行社、酒店和景区4类,能够完成用户基本信息的录入和维护,可以设置各种提示窗口和提示信息。如果游客需要使用平台的智能推荐功能,则需要进行用户注册,登陆之后才能为其推荐旅游信息。(2)后台管理:将数据库中的数据转换成适合各种学习算法构造模型所需的数据形式,因此需要一个转化的过程。在用户界面上显示的是用户能够理解的数据表示形式,比如交通类别分为飞机、火车、汽车、自驾和其他5种类别。为方便存储,在数据库中用TrafficCategory字段表示交通类别属性,其值分别为1、2、3、4、5。(3)旅游信息智能推荐:利用推荐算法得到的分类模型为游客推荐旅游项目、旅游景区(点)、旅游产品等信息,并将推荐结果通过用户界面返回给游客。
图3 旅游信息智能服务平台结构图
表1 旅游项目推荐的样本字段描述
字段名 类型 长度 离散处理后的值
Tsex Varchar 10 1=男,2=女
Teducation Varchar 10 1=大学本科以上(含大学本科),2=大专,
3=中专及高中,4=高中以下
Tage Varchar 2 1=60岁以上,2=40-60岁,
3=23-39岁,4=23岁以下
Tvocation Varchar 4 1=公务员及企事业管理人员,
2=文教科技人员,3=服务销售商贸人员,
4=工人和农民,5=学生
Tpermon
-income Varchar 10 1=大于3000元,2=1500到3000元,
3=500到1499元,4=小于500
Tpermon
-expense Varchar 10 1=大于3000元,2=1500到3000元,
3=500到1499元,4=小于500
Ttravel
-days Varchar 10 1=大于7天,2=3-7天,3=小于3天
Ttravel
-time Varchar 10 1=寒暑假,2=十一黄金周,3=其他节假日,
4=淡季,5=无所谓
Tconcern
-what Varchar 10 1=酒店,2=餐饮,3=交通,4=娱乐,5=购物,
6=导游服务,7=景区服务
Tpurpose Varchar 20 1=旅游观光,2=休闲度假,3=探亲访友,4=商务,
5=会议,6=文化体育科技交流,7=宗教朝拜,
8=其他
Tway Varchar 30 1=旅行社组织,2=单位组织,3=个人旅行
TrafficCategory Varchar 20 1=飞机,2=火车,3=汽车,4=自己开车,5=其他
HotelGrade Varchar 10 1=3星级以下,2=3星级,4=4星级,5=5星级
RepastGrade Varchar 10 1=3星级以下,2=3星级,4=4星级,5=5星级
ScenicZone
Category Varchar 10 1=自然景观,2=人文景观,3=现代旅游景区,
4=遗产景区,5=红色景区
ScenicZone
Grade Varchar 10 1=3A以下,2=3A,3=4A,4=5A
Tcost Varchar 10 1=大于3000元,2=2000-3000元,
3=1000-1999元,4=500-999元,
5=小于500元
Tpid Varchar 20 1=安顺黄果树-天星桥-陡坡塘瀑布-龙宫一日游,2=黔南珍珠景点二日游,3=黔西南马岭河二日游,4=荔波小七孔梅园二日游,5=黔东南杉木河漂流二日游,6=黔东南西江剑河二日游,……
智能推荐功能模块是旅游信息智能服务平台的核心功能模块。在该模块中,使用分类器动态集成算法AdaBoost.M1得到旅游信息推荐模型,使用模型实现为计划出行的游客推荐旅游信息。
4.2 数据整理
应用中使用的原始数据来自于贵州省旅游局提供的相关旅游数据和《贵州省游客旅游信息问卷调查》,大致可分为4个部分:(1)贵州省的旅游景区信息:包括景区名称、门票价格、开放月份、景区类别、景区等级、所在地区等;(2)贵州省的旅行社信息:包括旅游社名称、所在地区、提供的省内旅游项目等;(3)贵州省的酒店信息,包括酒店名称、所在地区、酒店等级、提供的各类房间的每日价格等;(4)游客的个人信息和旅游信息,这部分信息主要从《贵州省游客旅游信息问卷调查》中获取。游客的旅游信息包含贵州省内的旅游记录和省外的旅游记录,包括游客的个人资料,如姓名、性别、年龄、学历、职业、家庭人均月收入、家庭人均月支出、通常选择的出游天数、通常选择何时去旅游、是否在外过夜等,以及游客以往的旅游历史记录,包括当次旅游的旅游项目、旅游景区、旅游的目的、出游方式、交通类别、入住的酒店等级、游览的景区等级、花费情况等。对上述数据进行特征属性抽取,获得应用所需的数据集。以上信息转换为数据库中的78个字段,共有15000条记录,作为分类集成算法在旅游信息智能推荐中的数据集。
分类算法主要针对离散型的数据,因此需要对数据集的属性值进行离散处理。本文以推荐旅游项目为例说明如何应用分类集成算法实现旅游信息推荐,文中仅给出旅游项目智能推荐所需样本属性对应字段的描述如表1所示。
4.3 应用实例
将AdaBoost.M1算法生成的分类模型应用到旅游信息智能推荐平台的原型系统中,本节给出一个旅游项目智能推荐的实例对算法的应用进行说明。
游客在贵州省旅游信息服务平台上选择使用旅游项目推荐,需要根据提示在下拉列表中选择对应的个人基本信息和旅游偏好,点击“旅游项目推荐”按钮。游客的录入信息如图4所示。
本实例中,系统为该游客推荐的旅游项目是荔波小七孔梅园二日游。如图5所示,完成旅游项目推荐之后,游客可以点击查看旅游项目的简介,以了解该旅游项目的基本情况。
5.结束语
本文将一种流行的分类集成算法Adaboost.M1引入到旅游信息智能服务平台的智能推荐模块中,把为游客提供旅游信息推荐服务转换成分类问题。使用贵州省旅游局提供的相关旅游数据作为原始数据,筛选、整理入库后,即可作为生成和测试推荐模型的数据集。
通过实验验证和应用实例可知,在旅游信息智能服务平台中使用高性能的分类器集成算法Adaboost.M1能够快速、有效地根据游客的个性特征为其推荐满足需求的、个性化的旅游信息。通过这种方式,能够提高游客对旅游公司的认可度,从而增加企业的竞争力和经营业绩,提高省内旅游行业的服务水平,加快旅游信息化建设。
参考文献
[1]戴常英,孙德全.基于C4_5和Boosting算法的数据库负载自动识别[J].计算机工程与设计,2008,29(4):972-975.
[2]陈冰,张化祥.集成学习的多分类器动态组合方法[J].计算机工程,2008,34(24):218-220.
[3]关菁华,刘大有,贾海洋.自适应多分类器集成学习算法[J].计算机研究与发展,2008,45(Suppl):218-221.
[4]赵琳,罗汉,刘京.加权马氏距离判别分析方法及其权值确定——旅游信息服务系统的智能推荐[J].经济数学,2007,24(2):185-188.
[5]张晗.基于数据挖掘的旅游资讯服务智能推荐系统的研究与设计[D].郑州:中国人民解放军信息工程大学信息工程学院,2006.
[6]陈海霞.面向数据挖掘的分类器集成研究[D].长春:吉林大学计算机科学与技术学院,2006.
[7]Jiawei Han,Micheline Kamber.数据挖掘概念与技术[M].北京:机械工业出版社,2004.
基金项目:贵州大学青年教师科研基金项目自然科学类(2012017)。
作者简介:姜季春(1981—),女,重庆人,硕士研究生,讲师,主要研究方向:数据库技术与软件工程。