From 3adc66912f4b053c06ab91e948d05e315d2d514d Mon Sep 17 00:00:00 2001 From: Michel Vincent <vm.michel@gmail.com> Date: Thu, 4 Mar 2010 08:06:10 +0000 Subject: [PATCH] Add nonlinear samples generator git-svn-id: https://scikit-learn.svn.sourceforge.net/svnroot/scikit-learn/trunk@491 22fbfee3-77ab-4535-9bad-27d1bd3bc7d8 --- .../datasets/samples_generator/nonlinear.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 scikits/learn/datasets/samples_generator/nonlinear.py diff --git a/scikits/learn/datasets/samples_generator/nonlinear.py b/scikits/learn/datasets/samples_generator/nonlinear.py new file mode 100755 index 0000000000..db44141562 --- /dev/null +++ b/scikits/learn/datasets/samples_generator/nonlinear.py @@ -0,0 +1,30 @@ +import numpy as np +import numpy.random as nr + +def friedman(nb_samples=100, nb_features=10,noise_std=1): + """ + Function creating simulated data with non linearities + (cf.Friedman 1993) + X = NR.normal(0,1) + Y = 10*sin(X[:,0]*X[:,1]) + 20*(X[:,2]-0.5)**2 + 10*X[:,3] + 5*X[:,4] + The number of features is at least 5. + + Parameters + ---------- + nb_samples : int + number of samples (defaut is 100). + nb_features : int + number of features (defaut is 10). + noise_std : float + std of the noise, which is added as noise_std*NR.normal(0,1) + Returns + ------- + X : numpy array of shape (nb_samples, nb_features) for input samples + Y : numpy array of shape (nb_samples) for labels + + """ + X = nr.normal(loc=0, scale=1, size=(nb_samples, nb_features)) + Y = 10*np.sin(X[:,0]*X[:,1]) + 20*(X[:,2]-0.5)**2 + 10*X[:,3] + 5*X[:,4] + Y += noise_std*nr.normal(loc=0,scale=1,size=(nb_samples)) + return X,Y + -- GitLab