我正在尝试使用IsolationForest实现我的第一个异常检测,但不幸的是,它没有成功。
我有一个.csv
文件,具有不同的网络参数,例如ip.ttl,frame.len等。
#Einlesen
quelle = pd.read_csv('./x.csv')
pdf=quelle.to_numpy()
print(quelle.columns)
Index(['; ip.proto; ttl; frame.len; ip.src; ip.dst; ip.len; ip.flags; eth.src; eth.dst; eth.type; vlan.id; udp.port'],dtype ='object')
print(quelle.shape)
(1658,1)
但是当我尝试使用ip.ttl或frame.len(其中一列)之类的列创建IsolationForest模型时,出现错误
model=IsolationForest(n_estimators=50, max_samples='auto',contamination=float(0.1),max_features=1.0)
model.fit(quelle[['frame.len']])
KeyError:“ [Index(['frame.len'],dtype ='object')]都不在[列]中”
我的错误在哪里?
预先感谢
答案 0 :(得分:0)
数据框具有许多数据点,但只有一列。
print(quelle.shape)
(1658, 1)
将文件加载到数据框中后,它无法自动检测到文件的正确分隔符,并且没有读取每一列,而是将所有列打包为单个列。
要解决此问题,请在读取文件时指定分隔符。
pd.read_csv('./x.csv', sep=';')