给出一组非常类似于Motley Fool CAPS系统的数据,其中个人用户输入各种股票的买入和卖出建议.我想这样做是显示每个建议,我想一些如何率(1-5)是否是很好的预测<5>(即相关系数= 1)未来股价(或EPS或其他)的或者是一个可怕的预测者(即相关系数= -1)或介于两者之间的某个地方.
每个推荐都标记给特定用户,以便可以随时跟踪.我还可以根据sp500价格等因素跟踪市场方向(看涨/看跌).我认为在模型中有意义的组件将是:
user
direction (long/short)
market direction
sector of stock
Run Code Online (Sandbox Code Playgroud)
我们的想法是,一些用户在牛市中比熊市更好(反之亦然),有些用户在空头方面比在多头方面更好 - 然后是上述组合.我可以自动标记市场方向和行业(基于当时的市场和推荐的股权).
我的想法是,我可以提供一系列屏幕,并允许我通过显示特定时间段内的可用数据绝对值,市场和扇区输出性能来对每个单独的推荐进行排名.我会按照详细的清单对股票进行排名,以便排名尽可能客观.我的假设是单个用户的权利不超过57% - 但谁知道.
我可以加载系统并说"让我们将推荐排名为90天前的股票价值预测"; 这将代表一组非常明确的排名.
现在这里是关键 - 我想创建某种机器学习算法,可以在一系列时间内识别模式,以便当推荐流入应用程序时,我们保持该库存的排名(即类似于相关系数).该建议的可能性(除了过去的一系列建议)将影响价格.
现在这里是超级难题.我从未参加过AI课程/阅读AI书籍/从不介意机器学习.所以我想寻找指导 - 我可以适应的类似系统的样本或描述.寻找信息或任何一般帮助的地方.或者甚至推动我朝着正确的方向开始......
我的希望是与F#来实现这一点,并能够给我的朋友有一个新的技能在F#设置与机器学习的实现和潜在的东西(应用程序/源)我可以包括在高科技投资组合或博客空间留下深刻的印象;
提前感谢您的任何建议.
f# finance artificial-intelligence classification machine-learning
目的: 我想分开单词来计算文档中的频率,然后对这些频率进行一些计算.
单词可以使用以下任何一项开始/包含/结束:
单词可以包含(但不能开头或结尾)
单词可以用任何符号或空格分隔,如$,#,&,制表符
问题:
我尝试过的:
方法: 首先我替换除了\ w(字母数字加"_"),'和 - 之后的所有内容然后我删除',_和'如果在单词的开头或结尾找到它最后我用单个替换多个空格空间和分裂的话
代码: 我正在使用一系列正则表达式替换如下:
$str =~ s/[^\w'-]/ /g;
#Also tried using $str =~ s/[^:alpha:0-9_'-]/ /g; but doesn't work
$str =~ s/- / /;
$str =~ s/' / /;
$str =~ s/_ / /;
$str =~ s/ -/ /;
$str =~ s/ '/ /;
$str =~ s/ _/ /;
$str =~ s/ +/ /;
foreach $word (split(' ', lc $str)) { …Run Code Online (Sandbox Code Playgroud) 问题 一个简单的编程问题,涉及从控制台读取N,T次数并对其执行简单计算.
约束:
1≤T≤1000
2≤N≤100000000
由于BufferedReader通常比Scanner快,我使用它但程序退出非零退出代码,而使用Scanner解决了问题.
由于两者在我的计算机上都能正常工作,我怀疑这是一个内存问题.
问题:
码:
使用BufferedReader,抛出错误
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int i=0; i<T; i++) {
int N = Integer.parseInt(br.readLine());
int res = (N/2)+1;
System.out.println(res);
}
br.close();
}
}
Run Code Online (Sandbox Code Playgroud)
使用Scanner返回正确输出的代码:
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException{
Scanner sc = new …Run Code Online (Sandbox Code Playgroud) 我有一个大文件(比如10TB)和MD5哈希流(包含重复项),我有一个10MB(非常有限)的内存和无限的硬盘空间.使用给定条件查找所有唯一哈希(消除重复).请帮忙,这显然不是一个功课问题
目的 我正在制作哈希并将其打印以计算大型文档中单词的频率.在结果文件中,我收到了一些意外的条目.
问题 哈希有一个额外的输出HASH(0x55b0ac)
我的故障排除进度
在将代码分解为更小的部分并单独测试每个组件之后,我发现问题在于打印哈希.我在这里写了一小段代码,它复制了同样的问题.
码:
my %testhash = {};
$teststr = "using this for testing this that";
foreach $word (split(' ', lc $teststr)) {
$testhash{$word}++;
}
foreach $word (sort keys %testhash) {
print $word."\t".$testhash{$word}."\n";
}
Run Code Online (Sandbox Code Playgroud)
预期产出
for 1
testing 1
that 1
this 2
using 1
Run Code Online (Sandbox Code Playgroud)
获得输出
HASH(0x55b0ac)
for 1
testing 1
that 1
this 2
using 1
Run Code Online (Sandbox Code Playgroud)
注意 我知道我的问题可以通过使用if条件解决,如果$ testhash {$ word}为NULL则不打印行.我的问题是了解这次意外进入的原因.是否与声明哈希或打印它有关?
编辑:每次重新运行代码时,数字0x55b0ac都会改变