Python 只打印符合 if 和 for 的行,过度异常检测
Python print just lines that comply with if and for, anomaly detection for excessivity
我对我的数据应用了异常检测算法,现在我想知道某个值在异常向量中出现了多少次。因为我想找到过度异常,而我的教授不会让我使用统计方法,所以我正在尝试使用具有 90% 污染的异常检测算法,而那些将被视为正常的算法将是出现次数最多的算法,我会将其解释为异常。这只是一个可能会失败的测试,但为了证明这一点,我需要打印某个值在被认为正常的行中出现了多少次。
作为异常值的向量告诉我它们是正常的还是异常的(1 或 -1)和 df5 我的数据帧与数据。这就是我正在尝试的,我正在尝试为单个值执行此操作,因为它看起来更简单,但即使那样我也失败了。
value=1
for i in range(len(outliers)):
if outliers[i] == value:
print(df5.loc[df5['actor']==931])
它总是将特征 'actor' 是 931 n 次,我希望它到 return 当考虑该行时特征 'actor' 是 931 的行普通的。我已经尝试了所有我知道的方法。
我想我现在明白你想做什么了。 931 让我困惑了一段时间,现在我认为你只是想过滤所有 'normal' 个演员值为 931(它只是一个标签)的案例。因此,如果您这样打印,您将每次 select 标签为 931 的所有行。那不是你想要的。所以你想先过滤掉所有 actor == 931 的标签及其对应的离群值。然后简单地做
value=1
for i in range(len(outliers)):
if outliers[i] == value: #then normal not excessivity
print (i) # you will get the indexes of the filtered array where actor == 931
print(actual_index[i])
你可能需要原始数组的实际索引,所以当你首先过滤 actor == 931 案例时存储它们。玛丽安娜,这对你有意义吗?让我知道 :)
我对我的数据应用了异常检测算法,现在我想知道某个值在异常向量中出现了多少次。因为我想找到过度异常,而我的教授不会让我使用统计方法,所以我正在尝试使用具有 90% 污染的异常检测算法,而那些将被视为正常的算法将是出现次数最多的算法,我会将其解释为异常。这只是一个可能会失败的测试,但为了证明这一点,我需要打印某个值在被认为正常的行中出现了多少次。 作为异常值的向量告诉我它们是正常的还是异常的(1 或 -1)和 df5 我的数据帧与数据。这就是我正在尝试的,我正在尝试为单个值执行此操作,因为它看起来更简单,但即使那样我也失败了。
value=1
for i in range(len(outliers)):
if outliers[i] == value:
print(df5.loc[df5['actor']==931])
它总是将特征 'actor' 是 931 n 次,我希望它到 return 当考虑该行时特征 'actor' 是 931 的行普通的。我已经尝试了所有我知道的方法。
我想我现在明白你想做什么了。 931 让我困惑了一段时间,现在我认为你只是想过滤所有 'normal' 个演员值为 931(它只是一个标签)的案例。因此,如果您这样打印,您将每次 select 标签为 931 的所有行。那不是你想要的。所以你想先过滤掉所有 actor == 931 的标签及其对应的离群值。然后简单地做
value=1
for i in range(len(outliers)):
if outliers[i] == value: #then normal not excessivity
print (i) # you will get the indexes of the filtered array where actor == 931
print(actual_index[i])
你可能需要原始数组的实际索引,所以当你首先过滤 actor == 931 案例时存储它们。玛丽安娜,这对你有意义吗?让我知道 :)