【发布时间】:2016-03-03 06:27:51
【问题描述】:
我正在 Coursera 上学习机器学习课程。课程中强调我们使用Dato的GraphLab。在其中一个练习中,讲师使用 graphlab.random_split() 来拆分 SFrame,如下所示:
sales = graphlab.SFrame('home_data.gl/')
train_data, test_data = sales.random_split(.8,seed=0)
我已经完成了第一周的课程,测验要求我们使用 GraphLab 和 SFrame 解决一个问题。我尝试安装 GraphLab,但是它需要 64 位 PC,而我的 PC 是 32 位。如果我们愿意,讲师已经让我们选择使用 Pandas,所以我开始使用 Pandas。
我的问题是这个,导师使用sales.random_split(.8,seed=0),这会给他train_data, test_data。他将使用它们进行进一步分析,并为此得出答案。
现在,如果我不使用 pandas 函数,它会以完全相同的方式拆分数据,我的答案将永远不会匹配他的答案,我也永远无法通过这个测验。我有兴趣使用的 pandas 函数是:
train_data, test_data = pandas.DataFrame.sample(frac=0.8, random_state=0)
我的问题是:
pandas.DataFrame.sample(frac=0.8, random_state=0) 将产生与 sales.random_split(.8,seed=0) 相同的输出。
我已经写信给导师,我正在等待他的回复,在此期间,如果有人可以帮助我,请帮忙。谢谢。
【问题讨论】:
-
你有什么问题?
-
我认为没有任何方法可以确定。你可以试试看会发生什么。究竟如何进行随机拆分将取决于每个库使用的随机数生成器。 Pandas 可能依赖于 numpy 的 Mersenne twister。由于 GraphLab 是专有代码,除非公司告诉你,否则你无法知道它在使用什么。你真的只需要等待你的教授对预期的指导。
-
我参加了那门课程,我的印象是,虽然讲师没有说你必须使用 GraphLab,但如果你尝试采用开源方式,你会遇到很多不必要的麻烦(pydata 堆栈),这很烦人。最后我只是把它吸了起来,然后在 GraphLab 中做了所有事情。
标签: python pandas graphlab sframe