我是一名物理学家.我也有一些关于蒙特卡罗模拟的信息.我想学习蒙特卡洛的财务预测.你有什么主意吗?你认为财务决策编程怎么样?蒙特卡罗模拟的财务软件的未来如何?
我正在使用php和mysql开发一个在线书店.现在我想实现一些数据挖掘技术,如推荐相关书籍等.
我想知道什么是获得一些有用的实用技术来实现这些东西的最佳资源.
thx提前.
我使用weka来训练J48分类器,它返回了树的文本表示.现在,如果我想确定哪个功能最具信息量,我该怎么办呢?欢迎任何想法.提前致谢.
这基本上就是我在做的事情.我从en.wikipedia.org中选择一篇科学文章,并获得已编辑过的用户列表以及他们编辑文章的次数.为了实现这一点,我按照页面中的链接来引导我进入工具服务器.我用这个页面http://toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=en&wikifam=.wikipedia.org&page=Quantum_mechanics&since=&until=&grouped=on&hideanons=on&order=-edit_count&max=100&order=-edit_count&format=wiki到检索排序列表中的编辑器并排除匿名.这很好用,因为它有一个格式很好的列表,(即使它有我不需要的日期).
然而,为了判断他们的可信度,我需要看看顶级用户并查看他们正在做出贡献的热门文章,看看他们是在编辑很多科学文章还是随机垃圾.我很难获得每个用户的数据,因为目前,我能找到的唯一一个显示用户历史的网站是http://en.wikipedia.org/w/index.php?title=Special:Contributions&limit = 5000&目标= Aquirata
但是,获取单个用户的网页需要相当长的时间,至少20秒,然后我仍然需要解析无用的数据等.我不需要接近尽可能多的数据,因为我不得不下载.这是我到目前为止获取用户数据的代码:
static string getWebPage(string url)
{
WebClient client = new WebClient();
client.Headers.Add("user-agent",
"Mozilla/5.0 (Windows; Windows NT 5.1; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4");
return client.DownloadString(url);
}
static void Main(string[] args)
{
string url = "http://en.wikipedia.org/w/index.php?title=Special:Contributions&limit=50&target=Aquirata";
string page = getWebPage(url);
var lines = page.Split('\n', '\r');
var edits = lines.Where(t => t.StartsWith("<li class"));
foreach (string s in edits)
Console.WriteLine(s);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
是否有更快和/或更容易的替代方案?也许这里有一个数据库?(我不确定维基媒体是否有关于用户贡献的统计数据).
另外,我正在使用C#因为我最熟悉它.我可能会切换到java以允许跨平台,但我愿意接受任何其他建议.
一般来说,更具体地说是伯努利混合模型(又名潜类分析).
cluster-analysis machine-learning data-mining time-complexity space-complexity
我想知道Weka的简单逻辑函数是否使用正则化.
我在文档中没有看到任何提及,但我不确定.任何人都可以证实吗?
*用于构建线性逻辑回归模型的分类器.使用简单回归函数作为基础学习者的LogitBoost用于拟合逻辑模型.要执行的最佳LogitBoost迭代次数是交叉验证的,这会导致自动选择属性.有关更多信息,请参阅
Niels Landwehr,Mark Hall,Eibe Frank(2005).物流模型树.Marc Sumner,Eibe Frank,Mark Hall:加快Logistic Model Tree Induction.参见:第9届欧洲数据库知识发现原理与实践会议,675-683,2005.
OPTIONS
debug - 如果设置为true,分类器可能会向控制台输出其他信息.useCrossValidation - 设置是否要交叉验证LogitBoost迭代次数,还是应使用训练集上的停止条件.如果未设置(并且没有给出固定的迭代次数),则使用LogitBoost迭代次数来最小化训练集上的错误(错误分类错误或概率错误取决于errorOnProbabilities).
errorOnProbabilities - 在确定LogitBoost迭代的最佳数量时,将概率上的错误用作错误度量.如果设置,则选择LogitBoost迭代次数,以最小化均方根误差(在训练集或交叉验证中,具体取决于useCrossValidation).weightTrimBeta - 设置LogitBoost中用于重量修剪的beta值.仅在前一次迭代中携带(1-β)%权重的实例用于下一次迭代.设置为0表示没有重量修剪.默认值为0. numBoostingIterations - 设置LogitBoost的固定迭代次数.如果> = 0,则设置要执行的LogitBoost迭代次数.如果<0,则交叉验证该数字或使用训练集上的停止标准(取决于useCrossValidation的值).
useAIC - AIC用于确定何时停止LogitBoost迭代(而不是交叉验证或训练错误).
heuristicStop - 如果heuristicStop> 0,则启用贪婪停止的启发式,同时交叉验证LogitBoost迭代次数.这意味着如果在最后一次heuristicStop迭代中没有达到新的最小错误,则停止LogitBoost.建议使用此启发式算法,特别是在小型数据集上,它可以大幅提升速度.默认值为50.
maxBoostingIterations - 设置LogitBoost的最大迭代次数.默认值为500,对于非常小/大的数据集,可能更低/更高的值.*
在我的程序中,我将k = 2用于k-mean算法,即我只想要2个簇.我已经以一种非常简单明了的方式实现了,我仍然无法理解为什么我的程序进入无限循环.任何人都可以指导我在哪里犯错误..?
为简单起见,我已经在程序代码本身中获取了输入.这是我的代码:
import java.io.*;
import java.lang.*;
class Kmean
{
public static void main(String args[])
{
int N=9;
int arr[]={2,4,10,12,3,20,30,11,25}; // initial data
int i,m1,m2,a,b,n=0;
boolean flag=true;
float sum1=0,sum2=0;
a=arr[0];b=arr[1];
m1=a; m2=b;
int cluster1[]=new int[9],cluster2[]=new int[9];
for(i=0;i<9;i++)
System.out.print(arr[i]+ "\t");
System.out.println();
do
{
n++;
int k=0,j=0;
for(i=0;i<9;i++)
{
if(Math.abs(arr[i]-m1)<=Math.abs(arr[i]-m2))
{ cluster1[k]=arr[i];
k++;
}
else
{ cluster2[j]=arr[i];
j++;
}
}
System.out.println();
for(i=0;i<9;i++)
sum1=sum1+cluster1[i];
for(i=0;i<9;i++)
sum2=sum1+cluster2[i];
a=m1;
b=m2;
m1=Math.round(sum1/k);
m2=Math.round(sum2/j);
if(m1==a && m2==b)
flag=false;
else
flag=true;
System.out.println("After iteration "+ n +" , …Run Code Online (Sandbox Code Playgroud) 我有BIG数据文本文件,例如:
#01textline1
1 2 3 4 5 6
2 3 5 6 7 3
3 5 6 7 6 4
4 6 7 8 9 9
1 2 3 6 4 7
3 5 7 7 8 4
4 6 6 7 8 5
3 4 5 6 7 8
4 6 7 8 8 9
..
..
Run Code Online (Sandbox Code Playgroud) 我有这些数据:
x <- c(6.626,6.6234,6.6206,6.6008,6.5568,6.4953,6.4441,6.2186,6.0942,5.8833,5.702,5.4361,5.0501,4.744,4.1598,3.9318,3.4479,3.3462,3.108,2.8468,2.3365,2.1574,1.899,1.5644,1.3072,1.1579,0.95783,0.82376,0.67734,0.34578,0.27116,0.058285)
y <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
Run Code Online (Sandbox Code Playgroud)
看起来像:
plot(x,y)
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法让肘/膝盖指向周围 x=6.5
我认为拟合loess曲线然后采用二阶导数可能有效但是:
plot(x,predict(loess(y ~ x)),type="l")
Run Code Online (Sandbox Code Playgroud)
看起来不会做这个工作.
任何的想法?