scikit-learn - Sklearn 推荐的无监督学习集群算法
问题描述
慢慢进入 Sklearn 这个词,更具体的无监督聚类算法。我正在开发一个将 xml 文件扁平化为 csv 文件的项目,该部分已完成。
现在我想实现任何 sklearn 方法来检测我的数据的异常情况。
csv 文件采用 Dataframe 格式,其中一些列带有描述,而另一些列具有值。这些值也可能是小数55,2
哪种 Sklearn 算法更适合使用无监督学习进行异常检测?
一开始我只是想尝试找出数字的异常,如果有任何不属于那里的数字。
解决方案
首先,聚类算法和异常检测算法不是一回事。在集群中,目标是将每个实例分配到一个组(集群)中,其中每个组都有相似的实例。在异常检测中,目标是找到与任何其他实例都不相似的实例。
一些聚类算法,例如DB-SCAN,会创建一个“异常聚类”。该集群包含不属于任何其他集群的所有实例。我建议尝试看看它是否能解决您的问题。
几乎所有的聚类算法都期望数字向量作为输入。如果要使用字符串列,可以使用One Hot Encoding等方法将字符串转换为数字向量。有很多方法可以做到这一点,您可以在此处找到一些 sk-learn 实现。
推荐阅读
- python - 我的登录系统将无法工作 - 无论输入任何用户密码
- sql - 标准 SQL (BigQuery) 中整数 YYYMMDD 的日期
- node.js - 如何将momentJs时间转换为当地时间
- angular - Angular Material Table doesn't display any data
- laravel - 当我在 Laravel livewire 上单击事件时获得 404 模态
- sql-server - 点击时出错 - 自制软件:点击 microsoft/mssql-release
- python - 如何将pyspark数据框列转换为字典
- javascript - 从表单发布复杂数据。JS ==> ASP.NET MVC 5
- c++ - 为什么 cv:: Mat 对象在调试和发布之间表现不同?
- mysql - SQL 错误 1364 代码:'ER_NO_DEFAULT_FOR_FIELD',