3901130721-谭淇蔚-电子商务实验4fcv.docx
《3901130721-谭淇蔚-电子商务实验4fcv.docx》由会员分享,可在线阅读,更多相关《3901130721-谭淇蔚-电子商务实验4fcv.docx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电子商务应用实验报告项目名称 电子商务数据挖掘实验专业班级 软件工程1307班学 号 3901130721 姓 名 谭淇蔚 实验成绩:批阅教师:2015年 11月25 日实验4电子商务数据挖掘实验实验学时: 2 每组人数: 1 实验类型: 2 (1:基础性 2:综合性 3:设计性 4:研究性)实验要求: 1 (1:必修 2:选修 3:其它)实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它)一、实验目的1. 加深对数据挖掘概念和主要任务的理解。2. 研究并学习几种常用的关联分析算法、分类算法、聚类算法和异常检测方法,了解它们的实现原理以及在电子商务中的应用。3. 研究并学习几种常用的
2、个性化商品或信息推荐方法,并结合选题设计一个简单的商品或信息推荐模型。二、实验内容1. 研究并学习两种常用的关联分析算法的实现原理并编程实现其中一种,编程语言不限。2. 研究并学习两种常用的分类算法的实现原理并编程实现其中一种,编程语言不限。3. 研究并学习两种常用的聚类算法的实现原理并编程实现其中一种,编程语言不限。4. 研究并学习两种常用的异常检测方法的实现原理。5. 研究并学习两种常用的个性化商品或信息推荐方法,了解其实现原理和特点。6. 结合选题,设计一个简单的商品或信息推荐模型。【注意:模型不一定要很复杂,关键是要能够说明其合理性,鼓励大家创新。以下两种商品推荐模型(信息推荐模型思路
3、相似)基本思想供参考,也可在此基础上进行改进: 分析用户的购买记录,找出他经常购买的商品的类型,然后在该类型中找出购买量或者访问量最大但是该买家之前并未购买的商品,并将这些商品推荐给该用户。 找出与该用户具有相似购物习惯的其他用户,例如他们曾经购买过一些相同的商品,然后将其他用户购买过但是该用户未曾购买的商品推荐给他。】三、实验要求1. 研究两种常用的关联分析算法,填写相应的表格,表格必须填写完整,任选一种编程语言实现其中的一种算法,要求提供详细源代码;2. 研究两种常用的分类算法,填写相应的表格,表格必须填写完整,任选一种编程语言实现其中的一种算法,要求提供详细源代码;3. 研究两种常用的聚
4、类算法,填写相应的表格,表格必须填写完整,任选一种编程语言实现其中的一种算法,要求提供详细源代码;4. 研究两种常用的异常检测方法,填写相应的表格,表格必须填写完整;5. 研究两种常用的个性化商品或信息推荐方法,填写相应的表格,表格必须填写完整;6. 结合选题,设计一个简单的商品或信息推荐模型,要求详细说明其实现过程,包括公式、流程等,但无需编程实现。四、实验步骤1. 通过使用搜索引擎并查阅相关资料,研究并整理两种常用的关联分析算法,填写相应的表格并选择一种编程实现;2. 通过使用搜索引擎并查阅相关资料,研究并整理两种常用的分类算法,填写相应的表格并选择一种编程实现;3. 通过使用搜索引擎并查
5、阅相关资料,研究并整理两种常用的聚类算法,填写相应的表格并选择一种编程实现;4. 通过使用搜索引擎并查阅相关资料,研究并整理两种常用的异常检测方法,填写相应的表格;5. 通过使用搜索引擎并查阅相关资料,研究并整理两种常用的电子商务个性化商品或信息推荐方法,填写相应的表格;6. 结合选题,设计一个简单的商品或信息推荐模型。五、实验结果1. 研究并整理两种常用的关联分析算法,编程实现其中一种,填写如下表格:关联分析算法名称实现原理关联分析算法名称:XXX算法/核心实现代码解:关联分析算法名称实现原理Apriori算法1. 第一个关联规则挖掘算法2. 频繁项集的子集也一定是频繁的,如果A,B 是频繁
6、项集,则 A和B 也一定是频繁项集3. 从1到k(k项集)递归查找频繁项集4. 用得到的频繁项集生成关联规则5. Apriori算法的两个输入参数分别是最小支持度和数据集。该算法首先会生成所有单个元素的项集列表。接着扫描数据集来查看哪些项集满足最小支持度要求,那些不满足最小支持度的集合会被去掉。然后,对剩下来的集合进行组合以生成包含两个元素的项集。接下来,再重新扫描交易记录,去掉不满足最小支持度的项集。该过程重复进行直到所有项集都被去掉。蛮力法1. d个项,将产生2d个候选项集2. 总项集个数为2d3. 关联规则的总个数为R=k=1d-1dk j=1d-kd-kj=3d-2d+1+14. 当d
7、=6时,关联规则R的个数为6025. 目标找出所有的频繁项集关联分析算法名称:Apriori算法/核心实现代码#-*- encoding: UTF-8 -*-#-import-#-python代码实现-#-class Apriori(object): def _init_(self, filename, min_support, item_start, item_end): self.filename = filename self.min_support = min_support # 最小支持度 self.min_confidence = 50 self.line_num = 0 # it
8、em的行数 self.item_start = item_start # 取哪行的item self.item_end = item_end self.location = i for i in range(self.item_end - self.item_start + 1) self.support = self.sut(self.location) self.num = list(sorted(set(j for i in self.location for j in i)# 记录item self.pre_support = # 保存前一个support,location,num s
9、elf.pre_location = self.pre_num = self.item_name = # 项目名 self.find_item_name() self.loop() self.confidence_sup() def deal_line(self, line): 提取出需要的项 return i.strip() for i in line.split( ) if iself.item_start - 1:self.item_end def find_item_name(self): 根据第一行抽取item_name with open(self.filename, r) as
10、F: for index,line in enumerate(F.readlines(): if index = 0: self.item_name = self.deal_line(line) break def sut(self, location): 输入1,2,3,2,3,4,1,3,5. 输出每个位置集的support 123,435,234. with open(self.filename, r) as F: support = 0 * len(location) for index,line in enumerate(F.readlines(): if index = 0: co
11、ntinue # 提取每信息 item_line = self.deal_line(line) for index_num,i in enumerate(location): flag = 0 for j in i: if item_linej != T: flag = 1 break if not flag: supportindex_num += 1 self.line_num = index # 一共多少行,出去第一行的item_name return support def select(self, c): 返回位置 stack = for i in self.location: fo
12、r j in self.num: if j in i: if len(i) = c: stack.append(i) else: stack.append(j + i) # 多重列表去重 import itertools s = sorted(sorted(i) for i in stack) location = list(s for s,_ in itertools.groupby(s) return location def del_location(self, support, location): 清除不满足条件的候选集 # 小于最小支持度的剔除 for index,i in enu
13、merate(support): if i self.min_confidence: print ,.join(s) , - , self.item_nameeach_locationindex , min_support: , str(support) + % , min_confidence: , str(confidence) + %def main(): c = Apriori(basket.txt, 14, 3, 13) d = Apriori(simple.txt, 50, 2, 6)if _name_ = _main_:main()“”filename:(路径)文件名min_su
14、pport:最小支持度item_start:item起始位置item_end:item结束位置“”2. 研究并整理两种常用的分类算法,编程实现其中一种,填写如下表格:分类算法名称实现原理分类算法名称:XXX算法/核心实现代码解:分类算法名称实现原理KNN(K最近邻法)设有c个类为w1, , wi, wc,每类有Ni个样本 (i = 1c),则第i类i的判别函数为gix=minix-xik,k=1,2,N|.|表示距离或相似度(通常用欧氏距离)如果gix=minigi(x)那么决策xil 设有N个样本分布到c个类为w1, , wi, wc,每类有Ni个样本,i=1c。在全部样本找出k个最近距离的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3901130721 谭淇蔚 电子商务 实验 fcv
限制150内