python - ValueError:无法将字符串转换为浮点数 - 机器学习
问题描述
我正在研究一个机器学习项目,以确定 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)
我应该使用哪个分类器,我该如何解决这个问题?
解决方案
您需要将分类特征编码为数值,标签编码和One Hot Encoding等技术很少,它们是模块的一部分,sklearn.preprocessing
可让您进行编码。因此,首先确定您的训练集中的分类列,并按照上述链接中的说明进行虚拟编码,然后应用.fit()
方法。
有关更多实施细节,请参阅标签编码器与一个热编码器。
希望这可以帮助!
推荐阅读
- angular - Angular循环依赖:组件使用service动态创建同类型的组件
- python - 内联类中的 Django admin set fk_name = to_field 只允许上传一张图片
- python - 嵌套for循环python - 重复值
- javascript - 防止在蓝色圆圈svg之外单击
- regex - 仅当内容具有某些单词时,正则表达式才删除括号和内部内容
- android - 在没有 Android Studio 的情况下在 linux 上使用 android ndk 制作可执行文件
- sql - 在 SQL 中,如何从三个变量的列表中选择任意两个组合
- python - 当我尝试运行 .kv 文件时,此错误是什么意思
- python - 如何在不启用 keras 中的 run_eagerly 标志的情况下将张量转换为 numpy 数组
- python - 在 Keras 中,检查点会破坏验证的准确性吗?