大家好。我正在开发一个机器学习模型,有一个问题想请教。假设我的训练数据如下:
ID | 动物 | 年龄 | 栖息地
0 | 鱼 | 2 | 海洋
1 | 鹰 | 1 | 山地
2 | 鱼 | 3 | 海洋
3 | 蛇 | 4 | 森林
如果我应用独热编码(One-hot Encoding),它将生成以下矩阵:
ID | 动物_鱼 | 动物_鹰 | 动物_蛇 | 年龄 | ...
0 | 1 | 0 | 0 | 2 | ...
1 | 0 | 1 | 0 | 1 | ...
2 | 1 | 0 | 0 | 3 | ...
3 | 0 | 0 | 1 | 4 | ...
这很漂亮,在大多数情况下都能正常工作。但是,如果我的测试集包含的特征比训练集少(或多)怎么办?如果我的测试集不包含“鱼”怎么办?它将生成一种少的类别。
你们能帮我解决这个问题吗?
谢谢。
ID | 动物 | 年龄 | 栖息地
0 | 鱼 | 2 | 海洋
1 | 鹰 | 1 | 山地
2 | 鱼 | 3 | 海洋
3 | 蛇 | 4 | 森林
如果我应用独热编码(One-hot Encoding),它将生成以下矩阵:
ID | 动物_鱼 | 动物_鹰 | 动物_蛇 | 年龄 | ...
0 | 1 | 0 | 0 | 2 | ...
1 | 0 | 1 | 0 | 1 | ...
2 | 1 | 0 | 0 | 3 | ...
3 | 0 | 0 | 1 | 4 | ...
这很漂亮,在大多数情况下都能正常工作。但是,如果我的测试集包含的特征比训练集少(或多)怎么办?如果我的测试集不包含“鱼”怎么办?它将生成一种少的类别。
你们能帮我解决这个问题吗?
谢谢。
Fish
功能应该一直向下有零。 - blacksite