我是机器学习领域的新手,尝试使用10个人的电话记录来进行分类。
电话记录看起来像这样
UserId IsInboundCall Duration PhoneNumber(hashed)1 false 23 10111122222 true 45 1033334444
使用来自sklearn的SVM对这种8700条记录进行训练,结果准确率达到了88%
我对这个结果有几个问题,
如何正确使用一些非顺序数据(例如电话号码)
- 我不确定使用散列后的电话号码作为特征是否合适,但这个多类分类器的准确率还不错,这只是巧合吗?
- 如何将非顺序数据用作特征?
- 如果这个分类器需要分类1000个类别(超过1000个用户),SVM在这种情况下还能工作吗?
任何建议对我都有帮助。谢谢
回答:
1) 尝试在不使用电话号码作为特征的情况下运行SVM,以了解它对结果的影响有多大。
2) 为了避免使用顺序数据,你可以将其转换为数字,或者使用1对K的方法。例如,如果你添加了一个电话操作系统字段,可能的值为{IOS, Android, Blackberry}
,你可以将其表示为数字0,1,2
,或者作为3个特征(1,0,0), (0,1,0), (0,0,1)
。
3) 只要数据大致线性可分,SVM仍然可以提供良好的结果。为了实现这一点,你可能需要添加更多特征,并映射到不同的特征空间(RBF核是一个不错的开始)。