Hi scikit-learn members, 0.13.1 documentation states that individual datasets can be loaded in svmlight / libsvm format. So I have fed in "iris.scale" libSVM dataset however some erroneous behaviour happens. I am just trying to reproduce "plot_iris_exercise.py" with iris.scale(http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/iris.scale).
The problem in CLI: $python2.7 linsvm.py iris.scale Accuracy 0.973333333333 Traceback (most recent call last): File "linsvm.py", line 28, in <module> n_sample = len(X) File "/usr/lib/python2.7/dist-packages/scipy/sparse/base.py", line 175, in __len__ raise TypeError("sparse matrix length is ambiguous; use getnnz()" TypeError: sparse matrix length is ambiguous; use getnnz() or shape[0] The code is very simple below: import numpy as np import pylab as pl from sklearn import datasets, svm from sklearn.datasets import load_svmlight_file import sys #iris = datasets.load_iris() #X = iris.data #y = iris.target ##import iris.scale dataset in LibSVM X_in, y_in=load_svmlight_file(sys.argv[1]) X_train=X_in y_train=y_in X_test=X_in y_test=y_in svc=svm.SVC(kernel='linear') clf=svc.fit(X_train, y_train) y_pred =clf.predict(X_test) print "Accuracy", np.mean(y_pred == y_test) X = X_in[y_in != 0, :2] y = y_in[y_in != 0] ##The following code is from plot_iris_exercise.py n_sample = len(X) np.random.seed(0) order = np.random.permutation(n_sample) X = X[order] y = y[order].astype(np.float) X_train = X[:.9 * n_sample] y_train = y[:.9 * n_sample] X_test = X[.9 * n_sample:] y_test = y[.9 * n_sample:] # fit the model for fig_num, kernel in enumerate(('linear', 'rbf', 'poly')): clf = svm.SVC(kernel=kernel, gamma=10) clf.fit(X_train, y_train) pl.figure(fig_num) pl.clf() pl.scatter(X[:, 0], X[:, 1], c=y, zorder=10, cmap=pl.cm.Paired) # Circle out the test data pl.scatter(X_test[:, 0], X_test[:, 1], s=80, facecolors='none', zorder=10) pl.axis('tight') x_min = X[:, 0].min() x_max = X[:, 0].max() y_min = X[:, 1].min() y_max = X[:, 1].max() XX, YY = np.mgrid[x_min:x_max:200j, y_min:y_max:200j] Z = clf.decision_function(np.c_[XX.ravel(), YY.ravel()]) # Put the result into a color plot Z = Z.reshape(XX.shape) pl.pcolormesh(XX, YY, Z > 0, cmap=pl.cm.Paired) pl.contour(XX, YY, Z, colors=['k', 'k', 'k'], linestyles=['--', '-', '--'], levels=[-.5, 0, .5]) pl.title(kernel) pl.show() Many thanks, Hakan ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Scikit-learn-general mailing list Scikit-learn-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scikit-learn-general