我们问题的子样本如下。
我们有1600个地址位置可供机器学习查找。 我们的培训数据采用
的形式City Subdivision District number1-number2-number3
我们有显示城市分区的官方数据
London Chelsea Kensington 2-3-15
London Chelsea Kensington 4-3-15
London Chelsea Battersea 3-4-2
London Greenwich Charlton 4-3-15
London Greenwich Coldharbour 1-2-1
我们有10K这些样本。
所以我们的训练数据是10K。
Training Data
----------
Label | Features
Kensington | London Chelsea Kensington 5-1-1
Kensington | London Chelsea Kensington 4-3-15
Battersea | London Chelsea Battersea 5-1-1
Battersea | London Chelsea Battersea 4-2-1
Charlton | London Greenwich Charlton 5-1-1
Coldharbour| London Greenwich Coldharbour 5-1-1
----------
将数字视为地址编号。所以不是唯一的,不是一个与众不同的特征。
我们需要猜测的是
----------
Chelsea Kensington 5ー1ー1 sea harbor = Kensington ( sea harbor some additional items which can exist in other addresses
and can mislead our algorithms)
Kensington 5ー1ー1 = Kensington ( Think 5-1-1 exists for lots of addresses and some algorithms (Bayes or Decision Trees)guess this as another address with 5-1-1 Charlton)
Kensington 5 = Kensington ( One might think since it has only Kensington it will gues Kensington but if there is an address
as xxx 5 5 5 Bayes thinks it is xxx )
----------
有人会立即说这需要ngram。但是ngrams匹配 非常不相关的条目很有可能。具有Ngram2或Ngram3的贝叶斯发现了许多正确的匹配,但他们也声称错误结果的概率为99。
我尝试了贝叶斯,决策树,随机森林...... OnevsRest从未在这个高维度上完成。
多层感知器未完成12K特征空间。 记忆错误。
我将尺寸缩小到3000但即使没有看到结果。
SVM不适用,因为它是多类的。
总结一下:
我的训练数据非常简单,不包含太多信息。 (一个地方的所有地址列表) 问题是高维度的(1600区)
我的可能数据可能是看不见的,也可能是不可预测的。有些人 输入错误。
我正在考虑做一些PCA(SVD),然后做多层感知器 或CNN。
但是我认为我有1600个课程的12000个词汇量。 我不确定降维是否有意义 对于这个问题。
那么有人曾经遇到过像这样的问题吗?
答案 0 :(得分:2)
为什么不简单地 删除所有非字母 (包括数字)和可能的停用词?此时,上面显示的问题变为:当您看到Set A
的某个子集时,则返回B
。 {A
- > 'B'}
示例(删除非字母后):
{ London Chelsea Kensington } -> { Kensington}
所以我也认为:
{ Chelsea Kensington } -> { Kensington}
{ Kensington } -> { Kensington}
如果没有任何进一步的要求,则由Set of Sets
解决。一个简单的解决方案是比较新的Set To Be Predicted与所有标记集的交集并找到“赢家”。如果你有很多套,那么你将需要一个Trie
的术语森林 - 代表集合的成员 - 以帮助使搜索易于处理