如何并行化diana函数以在R中进行分裂聚类?

时间:2020-02-06 08:36:26

标签: r parallel-processing hierarchical-clustering

我有一个分类数据,我想通过首先使用import UIKit struct sports_content: Decodable { let sports_meta_expanded: sports_meta let teams_expanded: teams } struct sports_meta: Decodable { let date_time: String? let season_meta_list: season_meta } struct season_meta: Decodable { let calendar_date: Date let season_year: Int? let stats_season_year: Int? let stats_season_id: Int? let stats_season_stage: Int? let roster_season_year: Int? let schedule_season_year: Int? let standings_season_year: Int? let season_id: Int? let display_year: String let display_season: String let season_stage: Int? } struct next: Decodable { let url: String } struct teams: Decodable { let season_year: year let team_data: [team] } struct year: Decodable { let season_year: Int? } struct team: Decodable { let is_nba_team: Bool let team_name: String let team_nickname: String let team_code: String let team_abbrev: String let city: String let state: String let team_short_name: String let team_id: Int? let conference: String let division_id: String } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let url = Bundle.main.infoDictionary?["BASE_URL"] as? String ?? "" guard let convertedURL = URL(string: url) else { return } URLSession.shared.dataTask(with: convertedURL) { (data, response, error) in guard let data = data else { return } do{ let dataSet = try JSONDecoder().decode(sports_content.self, from: data) print(dataSet) } catch { print("JSONSerialization error:", error) } }.resume() } } 度量生成不相似矩阵来进行聚类;然后使用gower函数进行分裂聚类。但是,我的数据是具有19528x72元素的数据帧。因此,当我生成不相似矩阵时,它具有190661628个元素,这非常大。我已经运行了功能

diana

,但它已经运行了几天并且仍在运行。甚至尝试divisive.clust <- diana(as.matrix(gower_dist), diss = TRUE, keep.diss = TRUE) 也无济于事。

我的问题是;我们可以并行运行此功能吗?我曾考虑过在函数内部实现并行化,但是基本代码太复杂了,我在代码中没有看到任何循环。即使没有办法并行化此函数,是否还有其他方法可以使用相异矩阵或具有内置keep.diss = FALSE度量参数​​的函数进行分裂聚类?

我的系统是具有32核心处理器的工作站,我正在使用linux。

预先感谢

0 个答案:

没有答案