如何找到两个输入的模型函数
How to find out a model function for two inputs?
我正在为系统的最终用户的控件做一些机器学习。我基本上是试图根据两个输入来计算延迟数。目前,我收集了一个用户与控件交互所需时间的列表(以毫秒为单位)。我想,基于这两件事,我可以得到一个延迟数。
1) 列表长度
2) 列表中的时间
(每次用户在控件上悬停时,我都会在列表中记录一个值。此外,他们可能会在系统上悬停,但不会在控件上停留)
延迟数只是一个表示在实际下载控件内容之前等待这么长时间的数字。因为如果用户不与控件交互,那么我想要更长的延迟因子,这样可以减少服务器的负载。
我一直纠结的问题是如何使用上面收集的两个值来确定延迟时间。
我想到了4个场景:
1) 如果长列表和平均时间较大,则放入中等延迟时间
2) 如果长列表和平均时间很小,那么放入一个短延迟时间
3) 如果短列表和平均时间较大,则放入长延迟时间
4) 如果短列表和平均时间较小,则放入中等延迟时间
如果列表为空,则可能使用中等延迟因子。
当然还有延迟时间的偏差因子(实际上是第三个输入),因为不同的控制有不同的优先级。
以上4种情况决定了4个极端,当然,内部是一个梯度。我需要一个函数的方程(2个输入(和偏置?)和1个输出,可能类似于b * f(x,y)
,其中x
、y
和f(x,y)
在[0,1]
中)来建模这些信息。
有人知道我如何将上述输入转换为函数并从中获得延迟时间吗?
感谢
这是一个回归问题。您可以在任何机器学习库中使用众多回归模型中的一个。我个人使用scikit学习。您需要的是一个带标签的数据集(X,Y)。X是NxM矩阵,其中,对于作为特征的list_length和average_time,N是样本数量,M是2,X[i,0]是第i个训练样本的list_llength。Y是一个N向量,N[i]是系统需要应用的所需延迟量。给定X和Y,您可以使用scikit learn训练分类器,如您在所提供的链接中所见,然后给定新样本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],期望的延迟分别为1011001000。拟合函数为您的数据训练和拟合线性模型,使用该模型可以预测新样本,如[0.5,0.5]。
如果您也创建了一个评估集(X,Y),您将能够评估模型的性能并选择最佳回归模型。
正如Afsin所说,这是一个回归问题。有一件事我不一定会同意,那就是回归的类型。我认为,与线性回归模型相比,尝试泊松/负二项回归模型会更好。
这是他们声明的维基百科链接
在统计学中,泊松回归是一种用于对计数数据建模的回归分析形式。
您可以将用户必须等待的秒数视为您试图建模的计数。如果你的数据显示出过度分散的迹象,那么你应该将你的数据建模为负二项回归模型。
下面是一个在R.中如何执行类似操作的示例
数据
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)
当然,我遗漏了很多,但这是最基本的想法。当然,你必须做一些检查,以确保你的模型非常合适。
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 比较jquery中的两个输入
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 使用javascript将两个输入的日期添加在一起
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何调用两个函数是一种html输入类型
- 如何根据两个不同的输入动态设置链接的路径
- 比较两个输入字段
- javascript:无法添加两个文本输入
- 敲除:如何对两个数字输入进行双向绑定
- 使用一个输入作为两个按钮的值
- 在 JavaScript 中单击函数时两个日期类型输入之间的差异的代码
- 输入两个输入,填写第三个
- 如何十进制验证:限制仅输入两个数值
- 如果输入两个输入标签具有相同的值,则给出警报 - JavaScript 只有 jQuery
- 如何让用户输入两个字段中的任意一个
- 提前输入两个源和自定义分隔符
- 输入两个百分比,给我第三个
- 如何只允许输入两个小数点