我正在尝试使用Sklearn中的OneClassSVM进行异常值检测。一个用户每天访问网站,但有一天他访问了一个之前从未访问过的网站。我想使用OneClassSVM来捕捉这个异常值。以下是样本数据:
`([[www.makeuseof.com,www.kickstater.com,www.google.com,www.mashable.com`
以下是样本测试数据
`test_data = ['www.makeuseof.com','www.google.com','www.abc.com',]`
我使用Python内置的哈希库对所有字符串进行哈希处理。abs(hash('string'))
我期望它对www.abc.com
返回-1
,但实际上对所有网站都返回-1
。
回答:
可能还有一些实现上的错误,但总的来说,我认为哈希会导致数据过于分散,因此基本的哈希处理在这种情况下无法准确预测异常值,因为所有数据点之间的距离都太大,以至于所有数据点看起来都像是异常值。
对于你的任务,我不知道为什么你需要使用机器学习。你可以使用一个字典来存储访问过的网站,当你遇到一个新网站时,检查它是否在字典中。这方法快速、高效且简单。