и посмотреть медиа
Ciencia de los datos - entrevistas
и посмотреть медиа
Entrevistas de Data Science.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Preguntas de entrevista sobre ciencia de datos.
🤔 Как делается прунинг деревьев? Прунинг деревьев (или обрезка деревьев решений) — это процесс удаления ненужных ветвей в дереве, чтобы упростить модель и предотвратить переобучение. Обычно это делается путем удаления или сокращения узлов, которые добавляют мало полезной информации, что уменьшает сложность дерева без значительных потерь в точности. Существует несколько методов прунинга, включая предобрезку (pruning during tree construction) и постобрезку (pruning after tree construction), которые помогают сбалансировать общее количество узлов и глубину дерева, улучшая его обобщающую способность. 🚩До обрезки (Pre-pruning) До обрезки включает остановку роста дерева раньше, чем оно полностью обучится. В процессе построения дерева принимаются решения о прекращении роста текущей ветви, если выполнение одного из критериев остановки. Максимальная глубина дерева (max depth) Останавливает рост дерева, если оно достигает определенной глубины. Минимальное количество образцов в листе (min samples leaf) Останавливает рост дерева, если в узле меньше определенного количества образцов. Минимальное количество образцов для разбиения (min samples split) Останавливает рост дерева, если меньше определенного количества образцов в узле для разбиения. Минимальная информационная выгода (min impurity decrease) Останавливает рост дерева, если уменьшение неопределенности после разбиения меньше определенного порога. 🚩После обрезки (Post-pruning) После обрезки включает создание полного дерева и затем удаление некоторых его ветвей. Этот метод часто считается более эффективным, так как позволяет создать дерево с максимальной сложностью и затем упрощать его 🟠Обрезка на основе ошибки на валидационном наборе Дерево сначала обучается до полной глубины, а затем на валидационном наборе данных удаляются ветви, которые увеличивают ошибку. 🟠Обрезка на основе критерия минимальной ошибки (cost complexity pruning) Включает расчет ошибки для каждого поддерева и удаление тех, которые увеличивают общую ошибку меньше всего. 🚩Пример обрезки деревьев До обрезки from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split # Загрузка данных data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42) # Модель с параметрами до обрезки model_pre_pruning = DecisionTreeClassifier(max_depth=3, min_samples_split=4, min_samples_leaf=2) model_pre_pruning.fit(X_train, y_train) # Оценка модели print(f"Точность на тестовом наборе (до обрезки): {model_pre_pruning.score(X_test, y_test)}") После обрезки from sklearn.tree import DecisionTreeClassifier from sklearn.tree import plot_tree import matplotlib.pyplot as plt # Создание и обучение дерева без обрезки model = DecisionTreeClassifier() model.fit(X_train, y_train) # Построение полного дерева plt.figure(figsize=(20,10)) plot_tree(model, filled=True) plt.show() # Применение после обрезки с помощью параметра cost_complexity_pruning path = model.cost_complexity_pruning_path(X_train, y_train) ccp_alphas, impurities = path.ccp_alphas, path.impurities # Обучение моделей для каждого значения alpha models = [] for ccp_alpha in ccp_alphas: model = DecisionTreeClassifier(ccp_alpha=ccp_alpha) model.fit(X_train, y_train) models.append(model) # Выбор лучшей модели на основе валидационного набора best_model = None best_score = 0 for model in models: score = model.score(X_test, y_test) if score > best_score: best_model = model best_score = score # Оценка лучшей модели print(f"Точность на тестовом наборе (после обрезки): {best_score}") Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!