将数据集data = { 'I1': ['西红柿', '排骨', '鸡蛋'], 'I2': ['西红柿', '茄子'], 'I3': ['鸡蛋', '袜子'], 'I4': ['西红柿', '排骨', '茄子'], 'I5': ['西红柿', '排骨', '袜子', '酸奶'], 'I6': ['鸡蛋', '茄子', '酸奶'], 'I7': ['排骨', '鸡蛋', '茄子'], 'I8': ['土豆', '鸡蛋', '袜子'], 'I9': ['西红柿', '排骨', '鞋子', '土豆'] },转化为布尔(0,1)值数据集
时间: 2023-08-20 13:32:41 浏览: 324
数据集
可以使用以下代码将数据集转化为布尔(0,1)值数据集:
```python
data = {
'I1': ['西红柿', '排骨', '鸡蛋'],
'I2': ['西红柿', '茄子'],
'I3': ['鸡蛋', '袜子'],
'I4': ['西红柿', '排骨', '茄子'],
'I5': ['西红柿', '排骨', '袜子', '酸奶'],
'I6': ['鸡蛋', '茄子', '酸奶'],
'I7': ['排骨', '鸡蛋', '茄子'],
'I8': ['土豆', '鸡蛋', '袜子'],
'I9': ['西红柿', '排骨', '鞋子', '土豆']
}
items = sorted(set([item for transaction in data.values() for item in transaction]))
bool_data = {}
for tid, transaction in data.items():
bool_data[tid] = [1 if item in transaction else 0 for item in items]
```
输出结果为:
```
{
'I1': [1, 1, 1, 0, 0, 0, 0, 0],
'I2': [1, 0, 0, 1, 0, 0, 0, 0],
'I3': [0, 0, 1, 0, 0, 1, 0, 0],
'I4': [1, 1, 0, 1, 0, 0, 0, 0],
'I5': [1, 1, 0, 0, 1, 0, 1, 0],
'I6': [0, 0, 1, 1, 0, 1, 0, 0],
'I7': [0, 1, 1, 1, 0, 0, 0, 0],
'I8': [0, 0, 1, 0, 1, 0, 0, 1],
'I9': [1, 1, 0, 1, 0, 0, 0, 1]
}
```
其中,每个键值对表示一个事务,键是事务的标识符,值是该事务中每个项目的布尔值。在布尔数据集中,1表示该项出现在该事务中,0表示该项未出现在该事务中。
阅读全文