我有一个系统,我将其作为特征字符串的输入数组:
["kol","bol","sol","nol"]
这个数组的长度是动态的,我可以得到 2、4 或 6 等,总特征 <20
我需要根据这个数组做出决定,决定是另一个字符串:
x = ["feature1","feature5","feature3","feature8"] #in
y = "john" #decide
我最终要做的是为每个训练集(dataframe pandas)创建一个表,如果存在则为 1,否则为 0:
feature1 feature2 feature3 feature4 feature5... decision
1 0 1 0 1 1 (john mapped to 1, Ly to 2, etc)
我使用sklearn. ( DecisionTreeClassifier) 我用 100 多个输入特征数组和期望的结果训练它。
它有效,但我确实感觉如果输入与训练数据不同,它不会真正提供价值,因为这些二进制值没有真正的意义/权重。
这些特征字符串来自一个词袋,如果出现在文本中,我会提取它,以创建一组定义明确的特征来训练/预测。
- 我可以,还是应该将值从 1/0 更改为更加权的值?我怎么得到它们?
- 假设我有一个词袋,我在文本中查找并产生文本和袋子中的特征,这是一种正确的方法吗?