с помощью Scikit Learn in Python доктора Элвина Анга
https://www.alvinang.sg/s/iris.csv
Шаг 1. Прочитайте набор данных и разделите его на функции и цель
import numpy as np import pandas as pd #from sklearn.preprocessing import LabelEncoder #from sklearn.model_selection import train_test_split # Read the Iris dataset into a Pandas DataFrame. iris_df = pd.read_csv("https://www.alvinang.sg/s/iris_dataset.csv") # Create a LabelEncoder object. #le = LabelEncoder() # Target y = iris_df[“species”] # Features X = iris_df[[“sepal_length”, “sepal_width”, “petal_length”, “petal_width”]] # Optional: Split the data into a training set and a testing set. #train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.2)
Шаг 2: Импортируйте и обучите дерево
from sklearn import tree # Build the classifier based on Entropy (not GINI) dtc = tree.DecisionTreeClassifier(criterion=”entropy”) # Train the classifier dtc.fit(X, y)
Шаг 3: ранжируйте показатель важности функции и график
Значения находятся в диапазоне от 0 до 1, где 0 означает, что функция не имеет значения, а 1 означает, что функция является наиболее важной.
# Create a Pandas DataFrame. feature_importances_df = pd.DataFrame( data={ “feature”: X.columns, “importance”: dtc.feature_importances_, } ) # Sort the DataFrame by the importance values. feature_importances_df = feature_importances_df.sort_values(by=”importance”, ascending=False) # Print the DataFrame. display(feature_importances_df)
import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline #Creating a bar plot sns.barplot(x = feature_importances_df.importance, y = feature_importances_df.feature) #Add labels to your graph plt.xlabel(‘Feature Importance Score’) plt.ylabel(‘Features’) plt.title(‘Visualizing Important Features using Decision Tree Classifier’) plt.legend() plt.show()
Шаг 4. Визуализируйте дерево решений
from graphviz import Source graph = Source(tree.export_graphviz(dtc, out_file=None, feature_names=X.columns, class_names=pd.unique(iris_df[“species”]), filled=True, #rounded=True, #node_ids= False, #special_characters=False )) display(graph)
Заключение
Длина лепестка наиболее важна, за ней следует ширина лепестка.
Длина и ширина чашелистика НЕ важны.
О докторе Элвине Анге
Доктор Элвин Анг получил степень доктора философии, магистра и бакалавра в NTU, Сингапур. Ранее он был главным консультантом (наука о данных), а также доцентом. Он также был адъюнкт-лектором SUSS в течение 8 лет. Его внимание и интерес сосредоточены в области науки о данных в реальном мире. Хотя по образованию он операционный исследователь, его страсть к практическим применениям перевешивает его академическое образование. Он ученый, предприниматель, а также личный/деловой консультант.
Подробнее о нем на www.AlvinAng.sg.