«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Пример классификатора дерева решений для прогнозирования оттока клиентов

Пример классификатора дерева решений для прогнозирования оттока клиентов

Опубликовано в 2025-02-06
Просматривать:816

Decision Tree Classifier Example to Predict Customer Churn

] Пример классификатора дерева решений для прогнозирования оттока клиентов

]

] Обзор

]

Этот проект демонстрирует, как предсказать отток клиентов (независимо от того, покидает ли клиент услугу) с помощью классификатора дерева решений. Набор данных включает в себя такие функции, как age , ежемесячные обвинения , и звонки по обслуживанию клиентов , с целью прогнозирования, будет ли клиент сбрасывать или нет. &&?

модель обучается с использованием классификатора дерева решений Scikit-Learn, и код визуализирует дерево решений, чтобы лучше понять, как модель принимает решения.

]

]
] Технологии используются

]

]
    ]
  • python 3.x : первичный язык, используемый для построения модели.
  • ]
  • pandas : для наборов данных манипуляции и обработки данных.
  • ]
  • matplotlib : для визуализации данных (построение дерева решений). ]
  • ]
  • Scikit-Learn : для машинного обучения, включая обучение и оценку модели. ]
  • ]
]
] Шаги объяснены

]

] 1.

импортировать необходимые библиотеки ] ]

импортируйте панды как PD Импорт matplotlib.pyplot как plt импортные предупреждения от sklearn.model_selection import train_test_split от Sklearn.tree importeclassifier от sklearn.metrics import acture_score из дерева импорта Sklearn
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • pandas (pd): ]

    ]
      это используется для манипулирования данными и загрузкой данных в формат данных. DataFrames позволяют организовать и манипулировать структурированными данными, такими как таблицы (строки и столбцы).
    • ]
    ]
  • ]
  • matplotlib (plt):

    ]
      это библиотека графика, используемая для визуализации данных. Здесь он используется для графически графического построения дерева решений, что помогает понять, как принимаются решения в каждом узле дерева.
    • ]
    • ]
    ]
  • ]
  • предупреждения (предупреждения): ]

    ]
      модуль предупреждений используется для подавления или обработки предупреждений. В этом коде мы игнорируем ненужные предупреждения, чтобы сохранить выходные данные чистыми и читаемыми.
    • ]
    ]
  • ]
  • scikit-learn библиотеки:

    ]
      ]
    • train_test_split : эта функция разделяет набор данных в подмножества обучения и тестирования. Данные обучения используются для соответствия модели, а данные тестирования используются для оценки ее производительности. ]
    • ]
    • DecietyTreeclassifier : Это модель, которая будет использоваться для классификации данных и прогнозирования оттока клиентов. Деревья решений работают, создавая дерево, похожую на модель решений на основе функций. ]
    • ]
    • acture_score : эта функция вычисляет точность модели, сравнивая прогнозируемые значения с фактическими значениями целевой переменной (churn). ]
    • ]
    • Tree : Этот модуль включает в себя функции для визуализации дерева решений после его обучения. ]
    • ]
    ]
  • ]
] 2.

подавление предупреждений ] ]

Warnings.filterWarnings ("игнорировать")
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    Эта строка сообщает Python
  • игнорировать все предупреждения . Это может быть полезно, когда вы запускаете модели и не хотите предупреждения (например, о устаревших функциях), чтобы загромождать вывод. ]
  • ]
] 3.

создание синтетического набора данных ] ]

data = { «CustomerId»: диапазон (1, 101), # уникальный идентификатор для каждого клиента «Возраст»: [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10, # Возраст клиентов «Месячный заряд»: [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10, # Сумма ежемесячного счета 'CustomerserviceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10, # Количество звонков по обслуживанию клиентов 'Churn': ['no', 'no', 'yes', 'no', 'yes', 'no', 'да', 'да', 'нет', 'да']*10 # churn status } df = pd.dataframe (данные) print (df.head ())
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • здесь, мы создаем

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

    ]
      ]
    • customerId : уникальный идентификатор для каждого клиента. ]
    • ]
    • age : возраст клиента. ]
    • ]
    • MonthlyCharge : ежемесячный счет клиента. ]
    • ]
    • CustomerserviceCalls : количество раз клиент назывался обслуживание клиентов. ]
    • ]
    • churn : будь то клиент (да/нет).
    • ]
    ]
  • pandas DataFrame : данные структурированы как DataFrame (DF), двухмерная маркированная структура данных, позволяющая легко манипулировать и анализировать данные.

    ]
  • ]
] 4.

разделение данных на функции и целевую переменную ] ]

x = df [['age', 'monthlygrack', 'customerserviceCalls']] # Функции y = df ['churn'] # целевая переменная
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • функции (x) : независимые переменные, которые используются для прогнозирования цели. В этом случае это включает в себя возраст, месячный заряд и CustomerserviceCalls. ]
  • ]
  • целевая переменная (y) : зависимая переменная, которая является значением, которое вы пытаетесь предсказать. Здесь это столбец оттока, который указывает, будет ли клиент позойти или нет. ]
  • ]
] 5.

разделение данных на наборы обучения и тестирования ] ]

x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0,3, random_state = 42)
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • train_test_split разрывает набор данных на две части: a обучающий набор (используется для обучения модели) и набор тестирования (используется для оценки модели). ]
      ]
    • test_size = 0,3 : 30% данных выделяются для тестирования, а остальные 70% используются для обучения. ]
    • ]
    • random_state = 42 обеспечивает воспроизводимость результатов, фиксируя семена для генератора случайных чисел. ]
    • ]
    ]
  • ]
] 6.

обучение модели дерева решений ] ]

clf = decietreeclassifier () clf.fit (x_train, y_train)
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • decietreeclassifier () инициализирует модель дерева решений.
  • ]
  • clf.fit (x_train, y_train) обучает модель, используя учебные данные. Модель изучает шаблоны из функций X_TRAIN, чтобы предсказать целевую переменную Y_TRAIN.
  • ]
] 7.

делал прогнозы ] ]

y_pred = clf.predict (x_test)
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • clf.predict (x_test) : после обучения модели, она используется для прогнозирования на наборе тестирования (x_test). Эти прогнозируемые значения хранятся в Y_PRED, и мы сравним их с фактическими значениями (Y_TEST), чтобы оценить модель. ]
  • ]
] 8.

Оценка модели ] ]

acture = acture_score (y_test, y_pred) print (f "Точность: {Точность}")
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • acture_score (y_test, y_pred) ] вычисляет точность модели, сравнивая прогнозируемые метки оттока (y_pred) с фактическими метками оттока (y_test) из тестового набора. ]
  • точность является мерой того, сколько предсказаний было правильным. Это распечатано для оценки. ]
  • ]
] 9.

визуализация дерева решений ] ]

plt.figure (figsize = (12, 8)) tree.plot_tree (clf, fill = true, feature_names = ['age', 'monthlygrack', 'customerservicecalls'], class_names = ['no churn', 'churn']) plt.show ()
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    ]
  • tree.plot_tree (clf, fill = true) : визуализирует обученную модель дерева решений. Заполненный = истинный аргумент окрашивает узлы на основе метки класса (отток/без оттока).
  • ]
  • face_names : указывает имена функций (независимые переменные) для отображения в дереве. ]
  • ]
  • class_names : указывает метки класса для целевой переменной (churn). ]
  • ]
  • plt.show () : отображает визуализацию дерева.
  • ]
]
] Запуск кода

]

]
    клонировать репозиторий или загрузить скрипт.
  1. ]
  2. установить зависимости:
  3. ]
  4. ]
pip установить Pandas matplotlib scikit-learn
import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
]
    запустите сценарий Python или ноутбук Jupyter, чтобы обучить модель и визуализировать дерево решений.
  1. ]
  2. ]
] ]
Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/atifwattoo/decision-ree-classifier-example-to-predict-customer-churn-51fc?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь это.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3