Введение
В этом проекте вы научитесь создавать модель машинного обучения для классификации, чтобы предсказать статус риска держателей кредитных карт. Проект включает в себя предобработку данных, обучение модели на основе методов опорных векторов (SVM) и сохранение результатов предсказания в файл CSV.
🎯 Задачи
В этом проекте вы научитесь:
- Подготавливать данные путём кодирования меток для нечисловых признаков
- Обучать модель машинного обучения для классификации с использованием обучающих данных
- Сохранять результаты предсказания в файл CSV
🏆 Достижения
После завершения этого проекта вы сможете:
- Предобрабатывать и готовить данные для задач машинного обучения
- Обучать модель на основе методов опорных векторов (SVM) для классификации
- Сохранять результаты предсказания в файл CSV
Подготовить данные
В этом шаге вы научитесь читать обучающие и тестовые данные из файлов CSV и выполнять кодирование меток для нечисловых признаков.
Откройте файл
predict.pyв вашем редакторе кода.В функции
getData()выполните следующие задачи:- Прочитайте обучающие данные из файла
credit_risk_train.csvс использованиемpd.read_csv(). - Прочитайте тестовые данные из файла
credit_risk_test.csvс использованиемpd.read_csv(). - Вызовите функцию
label(), чтобы выполнить кодирование меток для нечисловых признаков в обучающих и тестовых данных. - Разделите обучающие данные на
x_train,y_train,x_testиy_test.
- Прочитайте обучающие данные из файла
def getData():
"""
Read data from csv files. And split the train data into train and test for validation.
"""
## step1. read data from csv files
data = pd.read_csv(trainfile)
test = pd.read_csv(testfile)
## step2. label encoding
data = label(data)
test = label(test)
## step3. split train data into train and test
x_train, y_train = data.iloc[:, :-1].to_numpy(), data.iloc[:, -1].to_numpy()
x_test = test.iloc[:, :].to_numpy()
y_test = None
return x_train, y_train, x_test, y_test
- В функции
label()завершите реализацию процесса кодирования меток:- Пройдитесь по каждой колонке в данных.
- Если тип данных колонки
object, создайте экземплярLabelEncoderи подстройте его под данные колонки. - Если имя колонки
"RISK", сохраните экземплярLabelEncoderв переменнуюconvertor. - Преобразуйте данные колонки с использованием экземпляра
LabelEncoderи обновите колонку в данных. - Верните обновленные данные.
def label(data):
"""
Use label encoding to process the non-numeric features.
"""
global convertor
for col in data.columns:
if data[col].dtype == "object":
le = LE()
if col == "RISK":
convertor = le
le.fit(data[col])
data[col] = le.transform(data[col])
return data
После завершения этого шага у вас будут готовы обучающие и тестовые данные для следующего шага.
Обучить модель
В этом шаге вы научитесь обучать модель машинного обучения для классификации с использованием обучающих данных.
- В функции
predict()выполните следующие задачи:- Создайте экземпляр модели
SVCиз модуляsklearn.svm. - Настройте модель на данных
x_trainиy_trainс использованием методаfit().
- Создайте экземпляр модели
def predict(model=MODEL):
"""
Use the model to predict the result.
"""
## step1. get the model
predictor = model()
## step2. get the data
x_train, y_train, x_test, _ = getData()
## step3. train the model
predictor.fit(x_train, y_train)
## step4. predict and save
res = predictor.predict(x_test)
save(res)
После завершения этого шага модель будет обучена и готова для предсказаний на тестовых данных.
Сохранить предсказания
В этом шаге вы научитесь сохранять результаты предсказания в файл credit_risk_pred.csv.
- В функции
save()выполните следующие задачи:- Используйте переменную
convertor, чтобы обратно преобразовать результаты предсказания в исходные метки. - Создайте Pandas DataFrame с результатами предсказания и сохраните его в файл
credit_risk_pred.csvс использованиемpd.DataFrame().to_csv().
- Используйте переменную
def save(result):
"""
Save the result to csv file.
"""
result = convertor.inverse_transform(result)
dataframe = pd.DataFrame({"RISK": result})
dataframe.to_csv("credit_risk_pred.csv", index=False, sep=",")
После завершения этого шага результаты предсказания будут сохранены в файл credit_risk_pred.csv.
Запустить предсказание
В этом финальном шаге вы запустите процесс предсказания и проверите вывод.
- В блоке
if __name__ == "__main__":вызовите функциюpredict(), чтобы запустить процесс предсказания. - В терминале запустите файл predict.py с помощью следующей команды:
python3 predict.py
- После запуска файла
predict.pyвы должны увидеть следующий вывод:
Predict done!
- Проверьте файл
credit_risk_pred.csvв директории проекта. В нем должны быть результаты предсказания для тестовых данных.
Поздравляем! Вы успешно завершили проект по прогнозированию риска для держателей кредитных карт. Вы научились:
- Подготавливать данные путём кодирования меток для нечисловых признаков
- Обучать модель машинного обучения для классификации с использованием обучающих данных
- Сохранять результаты предсказания в файл CSV
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



