【发布时间】:2014-01-20 14:13:50
【问题描述】:
我正在尝试使用sklearn 中的LogisticRegression 构建一个模型,该模型具有几千个特征和大约60,000 个样本。我正在尝试拟合模型,它现在已经运行了大约 10 分钟。我正在运行它的机器有千兆字节的 RAM 和几个内核可供使用,我想知道是否有任何方法可以加快进程
编辑 这台机器有 24 个核心,这里是 top 的输出来给出内存的概念
Processes: 94 total, 8 running, 3 stuck, 83 sleeping, 583 threads 20:10:19
Load Avg: 1.49, 1.25, 1.19 CPU usage: 4.34% user, 0.68% sys, 94.96% idle
SharedLibs: 1552K resident, 0B data, 0B linkedit.
MemRegions: 51959 total, 53G resident, 46M private, 676M shared.
PhysMem: 3804M wired, 57G active, 1042M inactive, 62G used, 34G free.
VM: 350G vsize, 1092M framework vsize, 52556024(0) pageins, 85585722(0) pageouts
Networks: packets: 172806918/25G in, 27748484/7668M out.
Disks: 14763149/306G read, 26390627/1017G written.
我正在尝试使用以下方法训练模型
classifier = LogisticRegression(C=1.0, class_weight = 'auto')
classifier.fit(train, response)
train 的行大约有 3000 长(全是浮点数),response 中的每一行都是 0 或 1。我有大约 50,000 个观察结果
【问题讨论】:
-
令人惊讶的是它花了这么长时间。你确定你的模型设置正确吗?
-
你的特征向量的大小是多少?
-
在您的机器上发布一些真实的统计数据? 1 GB 和 8 GB RAM 之间的差异非常大,2 核和 8 核之间的差异也是如此。更不用说在谈论单核小于 1 GB 的进程时,这些都不是很相关。
-
我添加了一些编辑来解决其中一些 cmets。我展示了 RAM 的最高输出只是因为我不是唯一一个使用这台机器的人,所以我并不总是可以访问所有的物理内存,但看起来我应该有足够的
标签: python logistic-regression scikit-learn