0
私はPythonで機械学習を学び、scikit学習パッケージを使用しています。私はすでにこの目的のためにRを使用しており、そのデータフレーム構造を非常に簡単に見つけることができます。 Scikit learnは、私が少し難しいと思っているような配列を使います。 Pythonでは、R dataframeに似たパンダがあります。このコードは、websiteから取られています。これは私がパンダでIrisデータセットでSVM回帰を使用する方法
を行っているものですどのように私はパンダのデータフレームでPythonコードの上に使用することができますし、SVM回帰を使用EDITED
R
library(e1071)
library(MASS)
data(iris)
mysvm <- svm(Species ~ ., iris)
mysvm.pred <- predict(mysvm, iris)
table(mysvm.pred,iris$Species)
# mysvm.pred setosa versicolor virginica
# setosa 50 0 0
# versicolor 0 48 2
# virginica 0 2 48
Pythonの
from sklearn import svm, datasets
from sklearn.metrics import confusion_matrix
iris = datasets.load_iris()
mysvm = svm.SVC().fit(iris.data, iris.target)
mysvm_pred = mysvm.predict(iris.data)
print confusion_matrix(mysvm_pred, iris.target)
# [[50 0 0]
# [ 0 48 2]
# [ 0 0 50]]
from sklearn import svm, datasets
from sklearn.metrics import confusion_matrix
import pandas as pd
iris = datasets.load_iris()
X=pd.DataFrame(iris.data,columns=iris.feature_names)
y=pd.DataFrame(iris.target)
X.head()
y.head()
mysvm = svm.SVC().fit(X,y)
mysvm_pred = mysvm.predict(X)
print confusion_matrix(mysvm_pred, y)
しかし、そのあなたはこのように、クロスバリデーションを使用することができます。このエラーに
>>> mysvm = svm.SVC().fit(X,y)
/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py:514: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().
y_ = column_or_1d(y, warn=True)
>>> mysvm_pred = mysvm.predict(X)
>>> print confusion_matrix(mysvm_pred, y)
/usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py:2645: VisibleDeprecationWarning: `rank` is deprecated; use the `ndim` attribute or function instead. To find the rank of a matrix see `numpy.linalg.matrix_rank`.
VisibleDeprecationWarning)
[[50 0 0]
[ 0 48 0]
[ 0 2 50]]