2017-01-01 77 views
0

我有一个由数字组成的三维列表的大数据,主要是整数。scikit学会学习并生成数字列表

[(50,100,0.5),(20,35,1.0),.....] 
[(70,80,0.3),(30,45,2.0),......] 
.... 

我看sklearn编写学习从这些数据模式的简单生成模型,并产生三胞胎的可能名单,但我的背景是相当弱的,如果没有这些文件是相当困难的跟随。

有没有一个例子sklearn代码,做类似的工作,我可以看看?

+0

据我所知,'sklearn'不直接支持生成模型。 'sklearn'模型不外推,它们插值。 – DyZ

+0

没有意义的任何冒犯,这似乎是一个问题,会更好地问在统计网站之一,因为它不是关于编程,而是关于统计推断。它似乎是关于如何模拟如何从某种涉及随机行为的过程中生成数据集。例如,您可以考虑http://stats.stackexchange.com/。 –

回答

0

我同意这个问题可能更适合数据科学或统计网站,但我会采取一个刺戳它。

首先,我假设你的数据在pandas数据框中;这对scikit-learn以及其他Python软件包很方便。

我会首先看到数据。由于您只有三个维度,因此三维散点图可能会有用。例如,见here

绘制数据的另一种有用方法是使用对图。 seaborn包使这非常容易。请参阅here。对图很有用,因为它们显示每个变量/特征的分布,以及特征对之间的相关性。

在这一点上,创建一个生成模型取决于情节告诉你什么。例如,如果所有变量都彼此独立,那么您只需简单地估计每个变量的pdf(例如,使用kernel density estimation,这也在seaborn中实现),然后通过绘制值生成新样本从三个分布中的每一个分开,并将这些值组合到一个元组中。

如果变量不是独立的,那么任务会变得更加复杂,并且可能需要在统计站点上单独发布一篇文章。例如,您的样本可能会从不同的群集生成,可能会重叠,在这种情况下,mixture model可能会有用。

0

这里是一个小代码示例正是这么做的(判别模型):

import numpy as np 
from sklearn.linear_model import LinearRegression 

#generate random numpy array of the size 10,3 
X_train = np.random.random((10,3)) 
y_train = np.random.random((10,3)) 
X_test = np.random.random((10,3)) 

#define the regression 
clf = LinearRegression() 

#fit & predict (predict returns numpy array of the same dimensions) 
clf.fit(X_train, y_train) 
y_pred = clf.predict(X_test) 

否则这里有更多的例子:

http://scikit-learn.org/stable/auto_examples/index.html

生成模型是sklearn.mixture。 GaussianMixture(仅适用于版本0.18)