为500个用户基于n个特征进行交叉引用计算的良好服务器设置

我在编写一个小脚本,用于在用户之间引用数据。每个用户对“特征”都有一个特定的计数。例如,特征A是(悲伤,快乐,生气),特征B是(晴天,多云,雷雨)。这些特征的当前总行数为200,000,涉及1000个用户。算法很简单:对于每个用户,计算特征,计算每个特征中最高的条目(A -> 悲伤,B -> 雷雨),并将其作为用户总特征计数的百分比。我现在得到的是一个用户的“评级”,我将其与数据库中的所有用户进行比较(是的,通过再次重复这个过程)。基于假设所有用户的最高特征 + 最高特征 + 最高特征等,与所有用户进行比较,可以得出用户之间的某种相对相似性。

问题是,我在Linode的4核Xen实例上使用PHP来做这件事。速度不是很快。目前最大限度地使用了一个核心,另一个核心使用了30%,其余的则处于闲置状态。脚本可以优化,但我真的想弄清楚如何设置以使其运行得更快。我需要什么样的架构来实现这一点?

我知道这是一个非常广泛的问题,但我希望有人能给我一些指导。任何帮助都将不胜感激!

此致,

Reinder


回答:

我发现罪魁祸首是mysqli->fetch_assoc(),它在等待硬盘为PHP提供额外资源。我通过一次性从数据库中获取所有结果,然后再进行处理,而不是逐一获取和处理,使过程变得更快。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注