对于我的课程项目,我正在研究Kaggle competition - Don't get kicked
该项目旨在将测试数据归类为汽车的好/坏购买。有34个功能,数据高度倾斜。我做了以下选择:
我研究过并找到了这些链接,但这些并没有特别的帮助 -
a)Metric for nearest neighbor,它表示找出自己的距离测量值相当于“核化”,但从中得不到多少意义。
b)Distance independent approximation of kNN谈论R树,M树等,我认为这些不适用于我的情况
c)Finding nearest neighbors using Jaccard coeff
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
由于数据不平衡,您应该采样相同数量的好/坏(丢失大量“坏”记录),或者使用可以解释此问题的算法。我认为RapidMiner中有一个SVM实现可以做到这一点。
您应该使用交叉验证来避免过度拟合。您可能在此处错误地使用了术语overfitting。
您应该将距离标准化,使它们具有相同的重量。通过标准化,我的意思是力在0和1之间。为了标准化,减去最小值并除以范围。
找到K的最佳值的方法是尝试所有可能的K值(交叉验证时)并选择具有最高精度的K值。如果K的“好”值很好,那么您可以使用遗传算法或类似物来找到它。或者你可以用5或10的步骤来尝试K,看看哪个K导致良好的准确性(比如它是55),然后在“好的价值”附近尝试1的步骤(即50,51,52 ......)但是这个可能不是最佳的。
答案 1 :(得分:0)
我正在看同样的问题。
关于k的选择,建议使用奇数值以避免获得“平局投票”。
我希望将来能够扩大这个答案。