👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
目录
- 【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
- 一、设计要求
- 二、设计思路
- 三、模型预测
- 绘制审计风险总数的分布
一、设计要求
要求完成以下功能:
1.能够导入包,能够读取数据集文件audit_risk和customer上运用决策树算法进行分类预测。
2.能够将指定的信息从文件中删除。
3.能够可视化数据并将结果显示在屏幕上。
4.能够数据预处理。
5.能够数据划分、模型训练、效果评估。
6.能够进行预测病显示预测结果。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
二、设计思路
- 导入所需的库和读取数据
首先,导入需要使用的Python库,包括pandas、numpy、scikit-learn、matplotlib和seaborn。接着,使用pandas读取客户信息数据集(customer.csv)和审计风险数据集(audit_risk.csv),并将其加载到数据框中。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
import matplotlib.pyplot as plt
import seaborn as sns
customer_df = pd.read_csv('customer.csv')
audit_risk_df = pd.read_csv('audit_risk.csv')
数据预处理
数据预处理是数据分析和机器学习中非常关键的一步。首先,检查数据集中是否存在缺失值,并使用前向填充法填充缺失值,以保证数据的完整性。接着,将客户数据中的婚姻状况和性别字段转换为数值型,以便模型能够正确处理这些分类变量。最后,确保审计风险数据集中所有特征均为数值类型,填充转换后的缺失值。
# 检查缺失值
print("客户数据缺失值:\n", customer_df.isnull().sum())
print("审计风险数据缺失值:\n", audit_risk_df.isnull().sum())
# 填充缺失值()
customer_df.fillna(method='ffill', inplace=True)
# 将分类变量转换为数值变量
customer_df['marital_status'] = customer_df['marital_status'].map({'M': 1, 'S': 0})
# 确保所有数据都是数值类型
for column in audit_risk_df.columns:
# 略。。。。 略。。。。
# 略。。。。 略。。。。
# 略。。。。 略。。。。
# 略。。。。 略。。。。
# 填充转换后的缺失值
audit_risk_df.fillna(method='ffill', inplace=True)
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
- 数据划分和模型训练
将审计风险数据集分为特征和标签两部分。特征包括除“Risk”外的所有列,标签为“Risk”列。然后,将数据集划分为训练集和测试集,以70%的数据作为训练集,30%的数据作为测试集。使用决策树分类算法对训练集数据进行模型训练。
# 选择特征和标签
features = audit_risk_df.drop(columns=['Risk'])
labels = audit_risk_df['Risk']
# 数据划分
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.3, random_state=42)
# 构建决策树模型
# 略。。。。 略。。。。
# 预测
y_pred = clf.predict(X_test)
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
- 效果评估
使用测试集数据对训练好的模型进行预测,并生成混淆矩阵、分类报告和准确率等评估指标。通过这些评估指标,可以了解模型的预测效果和性能。
# 显示评估结果
print("混淆矩阵:\n", confusion_matrix(y_test, y_pred))
print("分类报告:\n", classification_report(y_test, y_pred))
print("准确率:", accuracy_score(y_test, y_pred))
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
三、模型预测
对数据和模型结果进行可视化展示,包括特征重要性图、混淆矩阵热图和审计风险总数分布图。这些图表可以帮助我们更直观地了解数据和模型的表现。
# 绘制特征重要性
plt.figure(figsize=(12, 8))
feature_importances = pd.Series(clf.feature_importances_, index=features.columns)
feature_importances.nlargest(10).plot(kind='barh')
plt.title('特征重要性')
plt.show()
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
# 绘制混淆矩阵
plt.figure(figsize=(8, 6))
conf_matrix = confusion_matrix(y_test, y_pred)
sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues')
plt.title('混淆矩阵')
plt.xlabel('预测值')
plt.ylabel('实际值')
plt.show()
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
绘制审计风险总数的分布
根据用户指定的条件删除数据中的特定记录,并保存修改后的数据。以下示例代码删除年收入在$10K以下的客户,并将修改后的数据保存到新的文件中。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈
# 删除指定信息
def delete_info(df, condition):
return df.drop(df[condition].index)
# 删除年收入在$10K以下的客户
customer_df = delete_info(customer_df, customer_df['yearly_income'] == '$10K - $30K')
# 略。。。。 略。。。。
# 保存修改后的数据
customer_df.to_csv('customer_modified.csv', index=False)
预测新数据
对新数据进行预测,并展示预测结果。以下代码使用测试集的前五行数据作为新数据示例,进行预测并展示预测结果。预测结果被保存到文件中,以便用户查看和分析。
# 进行预测并显示预测结果
new_data = X_test.iloc[:5] # 这里使用测试集的前5行数据作为新数据示例
predictions = clf.predict(new_data)
print("新数据的预测结果:\n", predictions)
# 将结果保存到文件
result_df = pd.DataFrame(new_data)
result_df['Prediction'] = predictions
# 略。。。。 略。。。。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 决策树 ” 获取。👈👈👈