Python Classifier.fit适用于oneclassSVM,它抱怨浮点类型。类型错误浮动是必需的

Python Classifier.fit适用于oneclassSVM,它抱怨浮点类型。类型错误浮动是必需的,python,python-2.7,scikit-learn,svm,training-data,Python,Python 2.7,Scikit Learn,Svm,Training Data,我正在尝试将两个一类支持向量机与一组小数据进行拟合。这些数据集分别称为m1和m2m1和m2是转换为浮点t1和t2类型的numpy数组的小数列表。 当我尝试将oneclass支持向量机拟合到这些数据集时,我看到错误,即拟合函数将只接受浮点。有人能帮我解决这个问题吗 示例值: m1 =[0.020000000000000018, 0.22799999999999998, 0.15799999999999992, 0.18999999999999995, 0.264] m2 = [0.12799999

我正在尝试将两个一类支持向量机与一组小数据进行拟合。这些数据集分别称为m1和m2m1m2是转换为浮点t1t2类型的numpy数组的小数列表。 当我尝试将oneclass支持向量机拟合到这些数据集时,我看到错误,即拟合函数将只接受浮点。有人能帮我解决这个问题吗

示例值:

m1 =[0.020000000000000018, 0.22799999999999998, 0.15799999999999992, 0.18999999999999995, 0.264]
m2 = [0.1279999999999999, 0.07400000000000007, 0.75, 1.0, 1.0]
代码如下:

classifier1 =sklearn.svm.OneClassSVM(kernel='linear', nu ='0.5',gamma ='auto')
classifier2 = sklearn.svm.OneClassSVM(kernel='linear', nu ='0.5',gamma='auto')


   for x in xrange(len(m1)):
            print" Iteration "+str(x)
            t1.append(float(m1[x]))
            t2.append(float(m2[x]))
        tx = np.array(t1).astype(float)
        ty = np.array(t2).astype(float)
        t1 = np.r_[tx+1.0,tx-1.0]
        t2 = np.r_[ty+1.0,ty-1.0]
        print t1
        print t2
        clfit1 = classifier1.fit(t1.astype(float))
        clfit2 = classifier2.fit(t2.astype(float))
命令行错误:

/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py:386: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
  DeprecationWarning)
Traceback (most recent call last):
  File "normalize_data.py", line 108, in <module>
    main()
  File "normalize_data.py", line 15, in main
    trainSVM(result1[0],yval1,result2[0],yval2,0.04)
  File "normalize_data.py", line 99, in trainSVM
    clfit1 = classifier1.fit(t1.astype(float))
  File "/usr/local/lib/python2.7/dist-packages/sklearn/svm/classes.py", line 1029, in fit
    **params)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py", line 193, in fit
    fit(X, y, sample_weight, solver_type, kernel, random_seed=seed)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py", line 251, in _dense_fit
    max_iter=self.max_iter, random_seed=random_seed)
  File "sklearn/svm/libsvm.pyx", line 59, in sklearn.svm.libsvm.fit (sklearn/svm/libsvm.c:1571)
TypeError: a float is required
/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py:386:DeprecationWarning:在0.17中不推荐将1d数组作为数据传递,在0.19中会引发ValueError。如果数据具有单个特征,请使用X.restrape(-1,1),如果数据包含单个样本,请使用X.restrape(1,-1)重塑数据。
弃用警告)
回溯(最近一次呼叫最后一次):
文件“normalize_data.py”,第108行,在
main()
文件“normalize_data.py”,第15行,主目录
训练支持向量机(结果1[0],yval1,结果2[0],yval2,0.04)
trainSVM中第99行的文件“normalize_data.py”
clfit1=classifier1.fit(t1.astype(float))
文件“/usr/local/lib/python2.7/dist packages/sklearn/svm/classes.py”,第1029行
**参数)
文件“/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py”,第193行,适合
拟合(X、y、样本权重、解算器类型、内核、随机种子=种子)
文件“/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py”,第251行,格式为
max_iter=self.max_iter,random_seed=random_seed)
文件“sklearn/svm/libsvm.pyx”,第59行,在sklearn.svm.libsvm.fit(sklearn/svm/libsvm.c:1571)中
TypeError:需要浮点

出错并将nu设置为字符串而不是浮点。
设置nu=0.05解决了这个问题。

t2.append
之后,是
tx
吗?后面的其余部分真的缩进到for循环中了吗?