2017-01-15 4 views
0

Я хочу отобразить информацию об итогах вывода изолированного леса, например, показатели изоляции (на графике) и точность прогноза.Отображение информации об изолированном лесу

Я использую функцию изолирования леса sklearn.

clf = IsolationForest() 
clf.fit(X_train) 
yPredTest = clf.predict(X_test) 
xx, yy = np.meshgrid(np.linspace(-3, 88), np.linspace(-1, 50)) 
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()]) 
Z = Z.reshape(xx.shape) 
plt.title("Isolation Forest") 
plt.contourf(xx, yy, Z, cmap=plt.cm.Blues_r) 
b = plt.scatter(X_test[:, 0], X_test[:, 1], c='black') 
plt.show() 

В результате у меня есть, как image, но только один кластер (и некоторых точек распространения), и все точки в том же цвете: проблема решена, поставив yPredTest как цвет.

Другая проблема, я не знаю, как включить более двух функций. У меня есть два комплекта (поезд и испытание), которые, как [[0,1,34,38O,24],[98,938,238,23,1],[...],[0,13,3,23,49]] и алгоритм делает меня укоротить мои наборы, как X_train = np.array(list)[:100,[1,2]] и X_test = np.array(list)[101:,[1,2]] в противном случае (np.array(list)[:100,] и np.array(list)[101:,]) он остановится и предупредить меня:

ValueError: Number of features of the model must match the input. Model n_features is 8 and input n_features is 2

кажется что выпуск выпуска по этой линии Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])

ответ

1

Я вижу «другой вопрос», но где первый? Вы получили тот же цвет из-за аргумента c='black' при рассеянии. Попробуйте назначить yPredTest этому аргументу.

xx, yy - сетка графика плана (вы можете распечатать их, чтобы проверить, что они собой представляют). Если вы хотите использовать более двух функций, PCA может помочь.

+0

Были вопросы: отображение индексов изоляции, точность прогнозирования, изменение цвета и добавление других функций. Вы хотите, чтобы я использовал PCA с изолированным лесом или в дополнение к нему (= iForest) в другом файле? –

+0

@ Chènevis Я думаю, вам следует учиться на [учебнике] (http://scikit-learn.org/stable/auto_examples/ensemble/plot_isolation_forest.html#sphx-glr-auto-examples-ensemble-plot-isolation-forest-py), как это было показано. И это [doc] (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html) о том, как использовать IsolationForest. И используйте IsolationForest.predict, чтобы получить индексы тестового набора. – Zealseeker

+0

@ Chènevis IsolationForest поддерживает более двух функций. Просто измените форму своих данных. Но вы должны понимать, что как человек мы не можем разбросать их на более чем 3-мерное пространство. Поэтому, если вы хотите визуально отображать информацию визуально, использование PCA для сокращения ваших возможностей - хорошая идея, я думаю. Если вы заинтересованы в построении графика, попробуйте разбросать их в 3D-пространстве, что мне известно. – Zealseeker