Page 122 - 高中 信息技术 必修1 数据与计算
P. 122
第五章 数据处理和可视化表达
def connect_string(x,ms):
x=list(map(lambda i:sorted(i.split(ms)),x))
l=len(x[0])
r=[]
for i in range(len(x)):
for j in range(i,len(x)):
if x[i][:l-1]==x[j][:l-1] and x[i][l-1]!=x[j][l-1]:
r.append(x[i][:l-1]+sorted([x[j][l-1],x[i][l-1]]))
return r
广东教育出版社
(2)寻找关联规则。
result=pd.DataFrame(index=['support','confidence']) # 定义输出结果
support_series=1.0*d.sum()/len(d) # 支持度序列
column=list(support_series[support_series>support].index) # 初步根据支持度筛选
k=0
while len(column)>1:
k=k+1
print(u'\n正在进行第%s次搜索...'%k)
column=connect_string(column,ms)
print(u'数目:%s...'%len(column))
sf=lambda i:d[i].prod(axis=1,numeric_only=True) # 新一批支持度的计算函数
(3)创建连接数据。
d_2=pd.DataFrame(list(map(sf,column)),index=[ms.join(i)for i in column]).T
support_series_2=1.0*d_2[[ms.join(i) for i in column]].sum()/len(d)
column=list(support_series_2[support_series_2>support].index)
support_series=support_series.append(support_series_2)
column2=[]
(4)遍历可能的推理。
for i in column:
i=i.split(ms)
for j in range(len(i)):
column2.append(i[:j]+i[j+1:]+i[j:j+1])
114 114
9 ֻᅣ JOEE