有什么方法可以做自动多类?
Any method to do auto-multiclass?
收集random label的目的是为了看2-3个cluster之间的区别,后面准备做机器学习(random forest)
所以问题是,我想将 label0 和 label1 连接到一组,将 label2 和 label3 连接到另一组。
然后,随机更改标签的顺序,如label0 与label2,label1 与label3,...等等。
我不知道如何自动完成。
预期的结果是这样的
有什么解决办法吗?谢谢
我想我找到了解决你问题的方法:
import pandas as pd
import random
data = {
'col1': [0, 1, 2, 3, 4, 5, 6, 7],
'col2': [7, 6, 5, 4, 3, 2, 1, 0],
'label': ['0', '0', '1', '1', '2', '2', '3', '3']
}
df = pd.DataFrame(data=data)
labels = list(df['label'].unique())
num_iterations = 10
for i in range(10):
random.shuffle(labels)
dfs = []
for j in range(1, len(labels), 2):
series = df[(df['label'] == labels[j-1]) | (df['label'] == labels[j])][['col1', 'col2']].agg('sum')
new_label = labels[j-1] + ' ' + labels[j]
new_df = series.to_frame().T.assign(label=new_label)
dfs.append(new_df)
shuffeled_df = pd.concat(dfs)
所以我首先列出标签并对其进行洗牌。然后成对选择标签并计算总和。这是对所有标签对(在本次迭代中)完成的。
最后将创建一个新的组合 DataFrame。
收集random label的目的是为了看2-3个cluster之间的区别,后面准备做机器学习(random forest)
所以问题是,我想将 label0 和 label1 连接到一组,将 label2 和 label3 连接到另一组。
然后,随机更改标签的顺序,如label0 与label2,label1 与label3,...等等。 我不知道如何自动完成。
预期的结果是这样的
有什么解决办法吗?谢谢
我想我找到了解决你问题的方法:
import pandas as pd
import random
data = {
'col1': [0, 1, 2, 3, 4, 5, 6, 7],
'col2': [7, 6, 5, 4, 3, 2, 1, 0],
'label': ['0', '0', '1', '1', '2', '2', '3', '3']
}
df = pd.DataFrame(data=data)
labels = list(df['label'].unique())
num_iterations = 10
for i in range(10):
random.shuffle(labels)
dfs = []
for j in range(1, len(labels), 2):
series = df[(df['label'] == labels[j-1]) | (df['label'] == labels[j])][['col1', 'col2']].agg('sum')
new_label = labels[j-1] + ' ' + labels[j]
new_df = series.to_frame().T.assign(label=new_label)
dfs.append(new_df)
shuffeled_df = pd.concat(dfs)
所以我首先列出标签并对其进行洗牌。然后成对选择标签并计算总和。这是对所有标签对(在本次迭代中)完成的。 最后将创建一个新的组合 DataFrame。