DBSCAN sklearn内存问题

时间:2016-09-06 05:00:00

标签: scikit-learn dbscan

我正在尝试使用DBSCAN sklearn实现进行异常检测。它适用于小型数据集(500 x 6)。但是,当我尝试使用大型数据集(180000 x 24)时,它会遇到内存问题。我能做些什么来克服这个问题吗?

public function search($params)
    {
        $query = ContentViewLog::find();
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }
        $query->andFilterWhere([
            'subscriber_id' => $this->subscriber_id,
            'type' => $this->type,
            'site_id' => $this->site_id,
        ]);


        $query->groupBy("content_id");
        $query->orderBy("id desc");

        return $dataProvider;
    }

1 个答案:

答案 0 :(得分:2)

根据您正在处理的问题类型,可以在DBSCAN构造函数中使用此参数:

leaf_size:int,optional(默认值= 30) 叶子大小传递给BallTree或cKDTree。这可能会影响构造和查询的速度,以及存储树所需的内存。最佳值取决于问题的性质。

如果这不符合您的需求,此问题已经解决here,您可以尝试使用ELKI的DBSCAN实施。