Как проверить, является ли модель sklearn классификатором или регрессором - PullRequest
1 голос
/ 01 октября 2019

Есть ли простой способ проверить, решает ли экземпляр модели задачу классификации или регрессии в библиотеке scikit-learn?

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Использование sklearn.base.is_classifier и / или is_regressor:

from sklearn.base import is_classifier, is_regressor
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import RandomForestClassifier

models = [LinearRegression(), RandomForestClassifier(), RandomForestRegressor()]

for m in models:
    print(m.__class__.__name__, is_classifier(m), is_regressor(m))

Выход:

# model_name is_classifier is_regressor
LinearRegression False True
RandomForestClassifier True False
RandomForestRegressor False True
1 голос
/ 01 октября 2019

Полагаю, вы спрашиваете об этом, потому что у вас есть сериализованная модель, тип которой вы не знаете. Откройте файл и выполните

mlType = type(variable_name)

, где variable_name является дескриптором вашей десериализованной модели.

вывод, например,

class 'sklearn.linear_model.base.LinearRegression'
...