Added xw_pen data.

This commit is contained in:
Neil Lawrence 2013-10-15 05:49:11 +01:00
parent e1ff91ff3c
commit 491eb7243a
2 changed files with 33 additions and 7 deletions

View file

@ -145,6 +145,12 @@ The database was created with funding from NSF EIA-0196217.""",
'citation' : 'A Global Geometric Framework for Nonlinear Dimensionality Reduction, J. B. Tenenbaum, V. de Silva and J. C. Langford, Science 290 (5500): 2319-2323, 22 December 2000', 'citation' : 'A Global Geometric Framework for Nonlinear Dimensionality Reduction, J. B. Tenenbaum, V. de Silva and J. C. Langford, Science 290 (5500): 2319-2323, 22 December 2000',
'license' : None, 'license' : None,
'size' : 24229368}, 'size' : 24229368},
'xw_pen' : {'urls' : [neil_url + 'xw_pen/'],
'files' : [['xw_pen_15.csv']],
'details' : """Accelerometer pen data used for robust regression by Tipping and Lawrence.""",
'citation' : 'Michael E. Tipping and Neil D. Lawrence. Variational inference for Student-t models: Robust Bayesian interpolation and generalised component analysis. Neurocomputing, 69:123--141, 2005',
'license' : None,
'size' : 3410}
} }
@ -609,6 +615,14 @@ def olivetti_faces(data_set='olivetti_faces'):
lbls = np.asarray(lbls)[:, None] lbls = np.asarray(lbls)[:, None]
return data_details_return({'Y': Y, 'lbls' : lbls, 'info': "ORL Faces processed to 64x64 images."}, data_set) return data_details_return({'Y': Y, 'lbls' : lbls, 'info': "ORL Faces processed to 64x64 images."}, data_set)
def xw_pen(data_set='xw_pen'):
if not data_available(data_set):
download_data(data_set)
Y = np.loadtxt(os.path.join(data_path, data_set, 'xw_pen_15.csv'), delimiter=',')
X = np.arange(485)[:, None]
return data_details_return({'Y': Y, 'X': X, 'info': "Tilt data from a personalized digital assistant pen."}, data_set)
def download_rogers_girolami_data(): def download_rogers_girolami_data():
if not data_available('rogers_girolami_data'): if not data_available('rogers_girolami_data'):
download_data(data_set) download_data(data_set)

View file

@ -28,6 +28,18 @@ class sim_h(Function):
@classmethod @classmethod
def eval(cls, t, tprime, d_i, d_j, l): def eval(cls, t, tprime, d_i, d_j, l):
# putting in the is_Number stuff forces it to look for a fdiff method for derivative. # putting in the is_Number stuff forces it to look for a fdiff method for derivative.
if (t.is_Number
and tprime.is_Number
and d_i.is_Number
and d_j.is_Number
and l.is_Number):
if (t is S.NaN
or tprime is S.NaN
or d_i is S.NaN
or d_j is S.NaN
or l is S.NaN):
return S.NaN
else:
return (exp((d_j/2*l)**2)/(d_i+d_j) return (exp((d_j/2*l)**2)/(d_i+d_j)
*(exp(-d_j*(tprime - t)) *(exp(-d_j*(tprime - t))
*(erf((tprime-t)/l - d_j/2*l) *(erf((tprime-t)/l - d_j/2*l)