Я использую graphviz для построения дерева решений классификации.
, прежде чем соответствовать функциям, которые я использую "preprocessing.StandardScaler ()", чтобы масштабировать их
, поэтому, когда я готовлю решениедерево, которое я построил на основе «преобразованных значений»
, есть ли способ «перевернуть_trasform» классификатор, прежде чем строить его так, чтобы дерево решений отображало фактические значения в узлах, а не преобразованные?
да, я пробовал scale.inverse_transform (rf_clf) .... но, конечно, не 'twork ...
Импорт набора данных из sklearn.datasets
iris = datasets.load_iris()
Создание фрейма данных из словаря
species = [iris.target_names[x] for x in iris.target]
iris = pd.DataFrame(iris['data'], columns = ['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'])
iris['Species'] = species
с преобразованием в массивы
Features = np.array(iris[['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width']])
levels = {'setosa':0, 'versicolor':1, 'virginica':2}
Labels = np.array([levels[x] for x in iris['Species']])
разбиение
nr.seed(1115)
indx = range(Features.shape[0])
indx = ms.train_test_split(indx, test_size = 100)
X_train = Features[indx[0],:]
y_train = np.ravel(Labels[indx[0]])
X_test = Features[indx[1],:]
y_test = np.ravel(Labels[indx[1]])
масштабирование:
scale = preprocessing.StandardScaler()
scale.fit(X_train)
X_train = scale.transform(X_train)
подгонка классификатора
rf_clf = tree.DecisionTreeClassifier() ###simple TREE
rf_clf.fit(X_train, y_train)*
построение дерева решений с помощью графика:
dot_data = tree.export_graphviz(rf_clf, out_file=None,
feature_names=['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'],
class_names=['setosa', 'versicolor', 'virginica'],
filled=True, rounded=True,
special_characters=True)
print(dot_data)
graph = graphviz.Source(dot_data)
graph
результаты первого узла "Petal_width <= 0.53", а второго узла "длина лепестка"<= -0,788 ", что является отрицательным числомколичество единиц. </p>
Я бы предпочел, чтобы дерево имело действительное значение в дюймах ...