一方面,人们说 pandas与scikit-learn配合得很好。例如,pandas 系列对象非常适合本视频中的 sklearn 模型。另一方面,sklearn-pandas在 Scikit-Learn 的机器学习方法和 pandas 风格的数据框架之间提供了一座桥梁,这意味着需要这样的库。此外,例如,有些人将 pandas 数据帧转换为 numpy 数组以拟合模型。
我想知道是否可以在没有任何其他方法和库的情况下将pandas和scikit-learn结合起来。我的问题是,每当我通过以下方式将我的数据集拟合到 sklearn 模型时:
import numpy as np
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.svm import SVC
d = {'x': np.linspace(1., 100., 20), 'y': np.linspace(1., 10., 20)}
df = pd.DataFrame(d)
train, test = train_test_split(df, test_size = 0.2)
trainX = train['x']
trainY = train['y']
lin_svm = SVC(kernel='linear').fit(trainX, trainY)
我收到一个错误:
ValueError: Unknown label type: 19 10.000000
0 1.000000
17 9.052632
18 9.526316
12 6.684211
11 6.210526
16 8.578947
14 7.631579
10 5.736842
7 4.315789
8 4.789474
2 1.947368
13 7.157895
1 1.473684
6 3.842105
3 2.421053
Name: y, dtype: float64
据我了解,这是因为数据结构。但是,互联网上使用类似代码没有任何问题的示例很少。