import numpy as np import pandas as pd data = pd.read_csv("data/预处理.csv", header=None); data = np.array(data) cluster = [] 按第二个到第十四个标签分类 for i in range(178): if len(cluster) == 0: cluster.append([0]) else: m = 0 for j in range(len(cluster)): n = 0 for x in range(1, 14): if data[i][x] == data[j][x]: n = n + 1 if n == 2: cluster[j].append(i) m = 1 if m == 0: cluster.append([i]) for i in range(len(cluster)): for j in range(len(cluster)): if cluster[i] == cluster[j] and i != j: cluster[j] = 0 for i in range(len(cluster)): print( cluster[i]) xiu1 = [] for t in range(178): if data[t][0] ==1: xiu1.append(t) xiu2 = [] for t in range(178): if data[t][0] == 2: xiu2.append(t) xiu3 = [] for t in range(178): if data[t][0] == 3: xiu3.append(t) print(xiu1) print(xiu2) print(xiu3)修改并完善代码,只用简单的for循环不用decision,使他能分别输出xiu1,xiu2,xiu3在所有13个条件属性下的下近似集合,
时间: 2024-04-13 07:29:32 浏览: 114
要输出xiu1、xiu2和xiu3在所有13个条件属性下的下近似集合,你需要对每个条件属性进行遍历,并检查每个属性的值是否与相应的xiu集合中的值匹配。以下是修改代码的示例:
```python
import numpy as np
import pandas as pd
data = pd.read_csv("data/预处理.csv", header=None)
data = np.array(data)
cluster = []
# 按第二个到第十四个标签分类
for i in range(178):
if len(cluster) == 0:
cluster.append([0])
else:
m = 0
for j in range(len(cluster)):
n = 0
for x in range(1, 14):
if data[i][x] == data[j][x]:
n = n + 1
if n == 2:
cluster[j].append(i)
m = 1
if m == 0:
cluster.append([i])
for i in range(len(cluster)):
for j in range(len(cluster)):
if cluster[i] == cluster[j] and i != j:
cluster[j] = 0
# 定义函数来判断两个集合是否相似
def is_similar(set1, set2):
for item in set1:
if item not in set2:
return False
return True
xiu1 = []
for t in range(178):
if data[t][0] == 1:
xiu1.append(t)
xiu2 = []
for t in range(178):
if data[t][0] == 2:
xiu2.append(t)
xiu3 = []
for t in range(178):
if data[t][0] == 3:
xiu3.append(t)
# 输出xiu1, xiu2, xiu3在所有13个条件属性下的下近似集合
for col in range(1, 14):
approx_xiu1 = [t for t in xiu1 if is_similar(data[t][1:14], data[x][1:14]) for x in xiu1]
approx_xiu2 = [t for t in xiu2 if is_similar(data[t][1:14], data[x][1:14]) for x in xiu2]
approx_xiu3 = [t for t in xiu3 if is_similar(data[t][1:14], data[x][1:14]) for x in xiu3]
print(f"xiu1 在第{col}个条件属性下的下近似集合:", approx_xiu1)
print(f"xiu2 在第{col}个条件属性下的下近似集合:", approx_xiu2)
print(f"xiu3 在第{col}个条件属性下的下近似集合:", approx_xiu3)
```
这样,你就可以得到xiu1、xiu2和xiu3在所有13个条件属性下的下近似集合。希望对你有所帮助!
阅读全文