I sklearnのPythonライブラリの中で最も人気のあるMLアルゴリズムのいくつかをテストするために、次のコードがあります。ロジスティック回帰:不明なラベルタイプ:パイソンの「連続」を使用してsklearn
import numpy as np
from sklearn import metrics, svm
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
trainingData = np.array([ [2.3, 4.3, 2.5], [1.3, 5.2, 5.2], [3.3, 2.9, 0.8], [3.1, 4.3, 4.0] ])
trainingScores = np.array([3.4, 7.5, 4.5, 1.6])
predictionData = np.array([ [2.5, 2.4, 2.7], [2.7, 3.2, 1.2] ])
clf = LinearRegression()
clf.fit(trainingData, trainingScores)
print("LinearRegression")
print(clf.predict(predictionData))
clf = svm.SVR()
clf.fit(trainingData, trainingScores)
print("SVR")
print(clf.predict(predictionData))
clf = LogisticRegression()
clf.fit(trainingData, trainingScores)
print("LogisticRegression")
print(clf.predict(predictionData))
clf = DecisionTreeClassifier()
clf.fit(trainingData, trainingScores)
print("DecisionTreeClassifier")
print(clf.predict(predictionData))
clf = KNeighborsClassifier()
clf.fit(trainingData, trainingScores)
print("KNeighborsClassifier")
print(clf.predict(predictionData))
clf = LinearDiscriminantAnalysis()
clf.fit(trainingData, trainingScores)
print("LinearDiscriminantAnalysis")
print(clf.predict(predictionData))
clf = GaussianNB()
clf.fit(trainingData, trainingScores)
print("GaussianNB")
print(clf.predict(predictionData))
clf = SVC()
clf.fit(trainingData, trainingScores)
print("SVC")
print(clf.predict(predictionData))
最初の2つの作品[OK]を、私は得ましたLogisticRegression
コールに次のエラー:
[email protected]:/home/ouhma# python stack.py
LinearRegression
[ 15.72023529 6.46666667]
SVR
[ 3.95570063 4.23426243]
Traceback (most recent call last):
File "stack.py", line 28, in <module>
clf.fit(trainingData, trainingScores)
File "/usr/local/lib/python2.7/dist-packages/sklearn/linear_model/logistic.py", line 1174, in fit
check_classification_targets(y)
File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/multiclass.py", line 172, in check_classification_targets
raise ValueError("Unknown label type: %r" % y_type)
ValueError: Unknown label type: 'continuous'
入力されたデータは、以前の呼び出しの場合と同じであるので、ここで何が起こっていますか?
そして、なぜ、LinearRegression()
とSVR()
アルゴリズムの最初の予測に大きな違いがあるのですか(15.72 vs 3.95)
?
ありがとうございます!だから私は '2.3'を' 23'に変換しなければならない、そうではない? numpyやpandasを使ってこの変換を行うには、エレガントな方法がありますか? – harrison4
しかし、この例では、LogisticRegression関数を使用して入力データに浮動小数点数があります。http://machinelearningmastery.com/compare-machine-learning-algorithms-python-scikit-learn/ ...これは問題なく動作します。どうして? – harrison4
入力を浮動させることができますが、出力はカテゴリ的、つまりintである必要があります。この例では、列8は0または1のみです。 通常、あなたはカテゴリラベルを持っています。 ['red'、 'big'、 'sick']と数値を変換する必要があります。 http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-featuresまたはhttp://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html –