一方では、pandasはscikit-learnと相性が良いと言わ れています。たとえば、pandas シリーズのオブジェクトは、このビデオの sklearn モデルによく適合します。一方、Scikit-Learn の機械学習メソッドと pandas スタイルのデータ フレームの間の橋渡しをするsklearn-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
私が理解している限り、それはデータ構造によるものです。ただし、同様のコードを問題なく使用している例はインターネット上にほとんどありません。