我正在研究一个机器学习项目,以确定PCAP是否是攻击,我必须处理PCAP文件并创建模型然后进行预测。 我的代码的一部分是这样的:
train['is_train'] = np.random.uniform(0, 1, len(train)) <= .75
Train, Validate = train[train['is_train']==True], train[train['is_train']==False]
features = list(set(list(dataset.columns))-set(ID_col)-set(target_col)-set(other_col))
x_train = Train[list(features)].values
y_train = Train["class"].values
x_validate = Validate[list(features)].values
y_validate = Validate["class"].values
x_test = test[list(features)].values
random.seed(100)
rf = RandomForestClassifier(n_estimators=1000)
rf.fit(x_train, y_train)
这就是我的x_train列表包含的内容:
[['172.27.224.250' 16 'TCP' ... 1532299481617 60 54200]
['172.27.224.251' 24 'TCP' ... 1532299483068 60 502]
['172.27.224.251' 24 'TCP' ... 1532299483069 60 502]
...
['172.27.224.251' 24 'TCP' ... 1532301279315 60 502]
['172.27.224.250' 16 'TCP' ... 1532301279324 60 49713]
['172.27.224.250' 24 'TCP' ... 1532301279335 66 49713]]
我在ValueError: could not convert string to float: '172.27.224.250'
中遇到了错误rf.fit(x_train, y_train)
我应该使用哪个分类器以及如何解决此问题?
答案 0 :(得分:0)
您需要将分类特征编码为数值,Label Encoding和One Hot Encoding等技术是sklearn.preprocessing
模块的组成部分,可以用来进行编码。因此,首先确定火车集中的分类列,并按照上面的链接所述进行伪编码,然后应用.fit()
方法。
有关更多实施细节,请参见Label encoder vs one hot encoder。
希望这会有所帮助!