Sklearn 一个 Class SVM

Sklearn One Class SVM

我正在尝试在 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'))

我希望所有人都能 return -1 www.abc.com but its-1`。

也可能存在一些实现错误,但总的来说,我认为散列会导致您的数据过于分散,因此在这种情况下,基本散列不会让您准确预测异常值,因为一切都到目前为止远离其他一切,好吧,一切都会有点异常。

对于你的任务,我不知道你为什么需要机器学习。使用存储访问过的网站的字典,当你得到一个新网站时,检查它是否在字典中。快速、高效、简单。

这里有一个简短的解释为什么你不应该使用机器学习方法:

这不是机器学习任务。本质上,机器学习用于从嘈杂的数据中学习未知模式。这是 non-deterministic 个过程。 这种模式的一个例子是

"If a client is unemployed, under 25 years old and does not have high school diploma, his risk for credit loan default increases by 30% compared to all male clients."

在你的情况下,模式是已知的,可以描述为

"User visits a page that he never visited before".

这是一个确定性模式,因此您不应在此处使用机器学习方法。