我有一个帖子,我需要尽可能地预测最终分数。
显然使用curve_fit应该可以解决问题,尽管我并不是很了解如何使用它。
我有两个已知的值,它们是在帖子发布2分钟后收集的。
这些是评论计数(称为n_comments)和投票计数(称为)n_votes。
一个小时后,我再次检查该帖子,并获得final_score(所有投票的总和)值,这是我想要预测的值。
我在网上查看了不同的示例,但是它们都使用多个数据点(我只有2个),而且,我的初始数据点包含更多信息(n_votes和n_comments),因为我发现没有其他数据则无法准确预测分数。
要使用curve_fit您需要一个功能。我的看起来像这样:
def func(datapoint,k,t,s):
return ((datapoint[0]*k+datapoint[1]*t)*60*datapoint[2])*s
Run Code Online (Sandbox Code Playgroud)
样本数据点如下所示:
[n_votes, n_comments, hour]
Run Code Online (Sandbox Code Playgroud)
这是我的尝试的零星混乱,结果看起来根本不正确。
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
initial_votes_list = [3, 1, 2, 1, 0]
initial_comment_list = [0, 3, 0, 1, 64]
final_score_list = [26,12,13,14,229]
# Those lists contain data about multiple posts; I want to predict one at a time, passing the parameters to the next.
def func(x,k,t,s):
return …Run Code Online (Sandbox Code Playgroud) 我在这里搜索过,但我发现只有过时的帖子.
我想在我的GPU上运行培训.我在一些论坛上发现我需要应用.cuda()任何我想要使用CUDA的东西(我已经把它应用到了我能做的一切而不会让程序崩溃)令人惊讶的是,这使得训练更加缓慢.
然后,我发现你可以使用它torch.set_default_tensor_type('torch.cuda.FloatTensor')来使用CUDA.启用后,没有任何变化.怎么了?
有没有办法在整个模型上可靠地启用CUDA?
编辑:这被标记为重复.事实并非如此.我链接的帖子没有回答我的所有问题.
还有什么MyModel()意思呢?我需要更多有形的例子,比如代码示例. (这是我指的帖子)
我正在尝试预测互联网发布的趋势。
发布2分钟后,我可以获得该帖子的评论和投票数(可以更改,但应该足够了)。
目前,我使用以下公式:
predicted_votes = (votes_per_minute + n_comments * 60 * h) * k
Run Code Online (Sandbox Code Playgroud)
然后我k通过实验找到了。我收到了发布数据,请等待一个小时,然后执行
k = (older_k + actual_votes/predicted_votes) / 2
Run Code Online (Sandbox Code Playgroud)
等等。这种作品。准确性非常低(40-50%),但它使我对帖子的反应情况有了一个大概的了解。
我想知道是否可以采用更复杂的方程式,例如:
predicted_votes = ((votes_per_minute * x + n_comments * y) * 60 * hour) * k # Hour stands for 'how many hours to predict'
Run Code Online (Sandbox Code Playgroud)
然后优化参数以使其更好一些。
我假设我可以使用机器学习,尽管我没有可用的GPU(是的,我在集成显卡上运行,怪莫哈韦),所以我正在尝试这种方法。
因此,问题归结为:如何优化这些参数(k,x,y)以获得更好的精度?
编辑:
我试着按照@Alexis所说的去做,这就是我现在的位置:
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
initial_votes_list = [1.41, 0.9, 0.94, 0.47, 0]
initial_comment_list = [0, 3, …Run Code Online (Sandbox Code Playgroud)