Anonymous
Логистическая регрессия: неизвестный тип метки: «непрерывный» с использованием sklearn в Python
Сообщение
Anonymous » 16 янв 2025, 20:57
У меня есть следующий код для тестирования некоторых наиболее популярных алгоритмов машинного обучения библиотеки Python 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))
Первые два работают нормально, но при вызове логистической регрессии я получил следующую ошибку:
Код: Выделить всё
root@ubupc1:/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
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'
Входные данные такие же, как и в предыдущих вызовах, так что же здесь происходит?
И, кстати, почему существует огромная разница в первом прогнозе алгоритмов LinearReгрессия() и SVR() (15,72 против 3.95)?
Подробнее здесь:
https://stackoverflow.com/questions/419 ... -in-python
1737050261
Anonymous
У меня есть следующий код для тестирования некоторых наиболее популярных алгоритмов машинного обучения библиотеки Python sklearn: [code]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)) [/code] Первые два работают нормально, но при вызове логистической регрессии я получил следующую ошибку: [code]root@ubupc1:/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 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' [/code] Входные данные такие же, как и в предыдущих вызовах, так что же здесь происходит? И, кстати, почему существует огромная разница в первом прогнозе алгоритмов LinearReгрессия() и SVR() (15,72 против 3.95)? Подробнее здесь: [url]https://stackoverflow.com/questions/41925157/logisticregression-unknown-label-type-continuous-using-sklearn-in-python[/url]