Выбор между линейной моделью и деревом решений зависит от нескольких факторов:
🟠Линейная модель
- Данные имеют линейные зависимости между признаками и целевой переменной.
- Модель должна быть интерпретируемой (например, в финансовой сфере, где важна прозрачность решений).
- Требуется быстрая работа, особенно на больших данных.
- Данные не слишком сложные, без сильных взаимодействий между признаками.
🟠Дерево решений
- Данные имеют сложные, нелинейные зависимости.
- Важна автоматическая обработка пропущенных значений и отсутствие необходимости масштабировать данные.
- Нужно учитывать взаимодействия между признаками (например, если один признак влияет на результат только при определённом значении другого признака).
- Интерпретация менее важна, но важна высокая точность.
🚩Примеры
🟠Линейная модель: прогноз продаж по цене
Допустим, у нас есть зависимость: чем выше цена, тем ниже продажи. Можно использовать линейную регрессию:
from sklearn.linear_model import LinearRegression
X = [[10], [20], [30], [40]] # Цена товара
y = [1000, 800, 600, 400] # Продажи
model = LinearRegression()
model.fit(X, y)
print(model.predict([[25]])) # Прогнозируем продажи при цене 25
🟠Дерево решений: кредитный скоринг
Допустим, банк решает, выдавать ли кредит. У клиента есть признаки: доход, возраст, наличие задолженности. Взаимодействия сложные, например:
- Если у человека низкий доход и есть задолженность, то отказ.
- Если высокий доход, но был просроченный кредит, нужно учитывать другие факторы.
from sklearn.tree import DecisionTreeClassifier
X = [[25, 30000, 0], [40, 60000, 1], [35, 80000, 0], [50, 50000, 1]] # Возраст, доход, задолженность
y = [0, 0, 1, 1] # 0 - отказ, 1 - одобрение
model = DecisionTreeClassifier()
model.fit(X, y)
print(model.predict([[30, 70000, 0]])) # Прогноз для нового клиента
Ставь 👍 и забирай 📚 Базу знаний