机器学习基本模型与算法在线实验闯关
·
第11关:布尔数据集构建
任务描述
将以下超市的购买记录: I1:西红柿、排骨、鸡蛋、毛巾、水果刀、苹果 I2:西红柿、茄子、水果刀、香蕉 I3:鸡蛋、袜子、毛巾、肥皂、苹果、水果刀 I4:西红柿、排骨、茄子、毛巾、水果刀 I5:西红柿、排骨、酸奶、苹果 I6:鸡蛋、茄子、酸奶、肥皂、苹果、香蕉 I7:排骨、鸡蛋、茄子、水果刀、苹果 I8:土豆、鸡蛋、袜子、香蕉、苹果、水果刀 I9:西红柿、排骨、鞋子、土豆、香蕉、苹果 转换为布尔数据集,其中数据集用数据框来表示,数据框中的字段名称即为商品名称,如果商品在某个购买记录中出现用1来表示,否则为0。
相关知识
为了完成本关任务,你需要掌握:1.布尔关联规则挖掘,2.事务数据集转化为布尔(0、1)值数据表。
布尔关联规则挖掘
布尔关联规则挖掘是指将事务数据集转化为布尔(0、1)值数据集,并在布尔数据集基础上挖掘关联规则的一种方法。
数据集转化为布尔(0、1)值
算法如下: 1.定义一个空的字典D和包含所有商品的列表tiem=['西红柿','排骨','鸡蛋','茄子','袜子','酸奶','土豆','鞋子']; 2.定义一个长度与数据集长度(事务个数)相同的一维全零数组z,循环操作商品列表tiem,对每一个商品,搜索其所在事务序号(行号),并将事务序号对应的z位置修改为1,同时以商品作为键,z作为值,添加到字典D中; 3.将D转化为数据框。
示例如下:
tiem=['西红柿','排骨','鸡蛋','茄子','袜子','酸奶','土豆','鞋子']import pandas as pdimport numpy as npdata = pd.read_excel('tr.xlsx',header = None)data=data.iloc[:,1:]D=dict()for t in range(len(tiem)):z=np.zeros((len(data)))li=list()for k in range(len(data.iloc[0,:])):s=data.iloc[:,k]==tiem[t]li.extend(list(s[s.values==True].index))z[li]=1D.setdefault(tiem[t],z)Data=pd.DataFrame(D) #布尔值数据表
输出:

编程要求
根据提示,在右侧编辑器补充代码,得出布尔值数据表。
测试说明
平台会对你编写的代码进行测试。
开始你的任务吧,祝你成功!
任务代码
#********** Begin **********#
##将以下超市的购买记录(已用一个"超市购买记录.txt"来存放,读取该文件即可)
##注意:文件内容存放与下列展示一致,即顿号分隔,“##”号不是文件内容,文件编码为utf-8):
## I1、西红柿、排骨、鸡蛋、毛巾、水果刀、苹果
## I2、西红柿、茄子、水果刀、香蕉
## I3、鸡蛋、袜子、毛巾、肥皂、苹果、水果刀
## I4、西红柿、排骨、茄子、毛巾、水果刀
## I5、西红柿、排骨、酸奶、苹果
## I6、鸡蛋、茄子、酸奶、肥皂、苹果、香蕉
## I7、排骨、鸡蛋、茄子、水果刀、苹果
## I8、土豆、鸡蛋、袜子、香蕉、苹果、水果刀
## I9、西红柿、排骨、鞋子、土豆、香蕉、苹果
## 将其转换为布尔数据集,其中数据集用数据框Data来表示,数据框中的字段名称即为商品名称,如果商品在某个购买记录中出现用1来表示,否则为0
def return_values():
tiem=['西红柿','排骨','鸡蛋','茄子','袜子','酸奶','土豆','鞋子']#商品名称,也是数据框的字段名
import pandas as pd
import numpy as np
data=pd.read_table('超市购买记录.txt',engine='python',sep='、',encoding = 'utf-8',header=None)
data=data.iloc[:,1:]
D=dict()
for t in range(len(tiem)):
z=np.zeros((len(data)))
li=list()
for k in range(len(data.iloc[0,:])):
s=data.iloc[:,k]==tiem[t]
li.extend(list(s[s.values==True].index))
z[li]=1
D.setdefault(tiem[t],z)
Data=pd.DataFrame(D) #布尔值数据表
return Data
#********** End **********#
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)