【问题标题】:OOP design pattern for kmeans clusteringkmeans 聚类的 OOP 设计模式
【发布时间】:2021-01-14 15:55:18
【问题描述】:

我正在尝试为我的问题找出合适的设计模式。

我为许多正在查询的购物中心提供单一数据源,然后应用预处理将它们转换为所需的特征。

然后我为每个商场过滤这些特征,然后将 kmeans 分别应用于每个商场。

我现在已经通过按该购物中心的功能过滤来为单个购物中心编写代码。

我想为一个合适的设计模式寻求一些指导,通过为每个商场分别训练我的 kmeans,在所有商场中实施我的 kmeans。

我还应该在一个单独的 Preprocess 类中对所有购物中心的所有功能进行预处理,还是应该在全局范围内进行预处理并将其作为输入传递到我的类结构中?

【问题讨论】:

    标签: python-3.x oop machine-learning design-patterns k-means


    【解决方案1】:

    确定解决方案中的核心职责是什么。看来你有:

    1. 商城仓库(从存储中读取商城信息)
    2. 商城预处理器(将商城转换为功能)
    3. 特征过滤器(过滤特征)
    4. 聚类(执行聚类算法 - 例如 K 均值)

    最后一步的名称应该与您正在解决的实际问题相关,并且实际算法应该是实现细节。由于您没有在问题中提及此问题,因此为简单起见只是“聚类”。

    对于这些职责中的每一个,您都可以创建专注于这些职责的接口和实现。

    有了这样的设计,你有一个商场还是多个商场都没关系 - 你只需在一个类似 for 的循环中读取它们并通过这个管道进行处理。

    我不会在这里考虑设计模式。这通常会导致为了他们自己而应用设计模式。试着想想Single Responsibility Principle,其余的大部分“好东西”都会自然而然地出现。

    如果您了解一些设计模式,那么您可能会在学习过程中看到它们出现。然后你可以打磨它们以匹配模式的推荐形式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      相关资源
      最近更新 更多