C# 中列表中的剩余猥亵

本文关键字:余猥亵 列表 | 更新日期: 2023-09-27 18:31:29

我有一个类"itemset"列表,我称之为frequentItemsets,它包含数据库中所有频繁的项集,另一个整数列表,我称之为"index_of_sensitiveItemsets",其中包含频繁项集中敏感的频繁项集的不雅,它由用户定义。

喜欢这个

List<Itemset> frequentItemsets = get_frequentItemsets_fromDB();
List<int> index_of_sensitiveItemsets  = get_senFrqItemsetIndex_from_user();

这个问题的一个解决方案是这样的:

        for (int i = 0; i < allfrequentItemsets.Count - 1; i++)
                    {
                       if (! index_of_sensitiveItemsets.Contains(i))
                            index_of_nonsensitiveItemsets.Add(i);
                    }

但我问是否有更好的方法来获取频率项集中剩余元素的猥亵(索引的复数形式),这些元素不在列表中index_of_sensitiveItemsets。

类 Itemset 是从 spmf java 库加载的。它有两个成员:整数数组和整数支持以及许多方法,如下所示:

 public class Itemset : AbstractOrderedItemset
    {
        public int[] itemset;
        public int support;
        public Itemset();
        public Itemset(int item);
        public Itemset(int[] items);
        public virtual Itemset cloneItemSetMinusAnItemset(Itemset itemsetToNotKeep);
        public virtual Itemset cloneItemSetMinusOneItem(Integer itemToRemove);
        public override Integer get(int position);
        public override int getAbsoluteSupport();
        public virtual int[] getItems();
        public virtual void increaseTransactionCount();
        public virtual Itemset intersection(Itemset itemset2);
        public virtual void setAbsoluteSupport(Integer support);
        public override int size();
    }

提前非常感谢

C# 中列表中的剩余猥亵

这取决于敏感项集与频率项集的比率。如果超过 50% 的 frequentItemSet 是敏感项目集,则更有意义的做法是反转问题并将所有频繁的 ItemSet 复制到非敏感项集,然后删除敏感项集中不存在的所有项集。

无论哪种方式,都不太可能有比您编写的代码结构性能更好的代码结构。是的,您可以使用一些花哨的 Linq 在更少的代码行中完成此操作,但您的代码是明确且易于理解的。我会坚持你所拥有的,除非你能提供一些进一步的信息,表明它在某种程度上表现不佳。