Javascript 如何找出两个输入的模型函数?

Javascript 如何找出两个输入的模型函数?,javascript,machine-learning,data-modeling,modeling,Javascript,Machine Learning,Data Modeling,Modeling,我正在为一个系统的终端用户的控件做一些机器学习。我基本上是想根据两个输入计算出一个延迟数。 目前,我收集了用户与控件交互所需时间的列表(以毫秒为单位)。我想基于这两件事,我可以得到一个延迟数 1) 名单的长度 2) 名单上的时间 (每次用户将鼠标悬停在控件上时,我都会在列表中记录一个值。此外,他们可能会进入系统,但不会将鼠标悬停在控件上) 延迟数只是一个数字,表示在实际下载控件内容之前等待这么久。因为如果用户不与控件交互,那么我需要一个更长的延迟因子,这样可以减少服务器上的负载 我一直关注的问题

我正在为一个系统的终端用户的控件做一些机器学习。我基本上是想根据两个输入计算出一个延迟数。 目前,我收集了用户与控件交互所需时间的列表(以毫秒为单位)。我想基于这两件事,我可以得到一个延迟数

1) 名单的长度

2) 名单上的时间

(每次用户将鼠标悬停在控件上时,我都会在列表中记录一个值。此外,他们可能会进入系统,但不会将鼠标悬停在控件上)

延迟数只是一个数字,表示在实际下载控件内容之前等待这么久。因为如果用户不与控件交互,那么我需要一个更长的延迟因子,这样可以减少服务器上的负载

我一直关注的问题是如何使用上面收集的两个值来确定延迟时间

我想到了4种情况:

1) 如果长列表和平均时间较大,则设置一个中等延迟时间

2) 如果长列表和平均时间很小,则设置短延迟时间

3) 如果短列表和平均时间较大,则放置较长的延迟时间

4) 如果短列表和平均时间很小,则设置一个中等延迟时间

如果列表为空,则可能使用中等延迟因子

当然还有延迟时间的偏差系数(实际上是第三个输入),因为不同的控制有不同的优先级

上述4种情况决定了4种极端情况,当然,其中有一个梯度。我需要一个函数方程(2个输入(和偏差?)和1个输出,可能类似于
b*f(x,y)
,其中
x
y
,而
f(x,y)
[0,1]
中)对该信息进行建模

有人知道如何将上述输入转换为函数并从中获得延迟时间吗


谢谢

这是一个回归问题。您可以在任何机器学习库中使用许多回归模型中的一个。我个人使用。 您需要的是一个带标签的数据集(X,Y)。X是一个NxM矩阵,其中N是样本数,M是2,表示列表长度和平均时间作为特征,X[i,0]是第i个训练样本的列表长度。Y是一个N向量,N[i]是系统需要应用的期望延迟量。 给定X和Y,您可以使用scikit学习训练分类器,正如您在提供的链接中所看到的那样,然后给定一个新样本X,模型可以使用回归器的预测函数预测所需的延迟时间

from sklearn import linear_model
clf = linear_model.LinearRegression()
clf.fit ([[0, 0], [1, 1], [2, 2]], [10, 100, 1000])
clf.predict([[0.5, 0.5]])
在从提供的scikit学习链接复制的本例中,样本[0,0]、[1,1]、[2,2]的期望延迟分别为10、100、1000。 拟合函数训练并拟合数据的线性模型,您可以使用该模型预测新样本,如[0.5,0.5]


如果您还创建了一个评估集(X,Y),您将能够评估模型的性能并选择最佳的回归模型。

正如Afsin所说,这是一个回归问题。有一件事我不一定同意,那就是回归的类型。我认为你最好尝试泊松/负二项回归模型,而不是线性回归模型

维基百科链接是他们陈述的地方吗

在统计学中,泊松回归是一种用于对计数数据建模的回归分析形式

您可以将用户等待的秒数视为您尝试建模的计数。如果您的数据显示出过度分散的迹象,那么您应该将数据建模为负二项回归模型

下面是一个在R中如何做类似事情的示例

资料

假设您正在尝试对博士后的引用数量进行建模。上述数据将存储在一个名为postdoc的变量中

引文
age mar doc und cits    
29  Yes 362 7   2   
32  No  210 6   4   
26  Yes 359 6   1   
25  Yes 181 3   1   
30  No  429 7   1   
28  Yes 359 6   0   
30  No  210 4   0   
40  Yes 347 4   0   
30  No  210 5   2   
citations<-postdoc$cits
married<-postdoc$mar
age<-postdoc$age
prestige<-postdoc$doc
selectivity<-postdoc$und
married<-factor(postdoc$mar,levels = c(0,1), labels = c("yes","no"))
citation.model<-glm(citations ~ married+age+prestige+selectivity, family = poisson)