这是一篇关于机器学习算法的文章,数据来自于kaggle社区,算法用到了随机森林。 

这是数据的截图 

实现方法 

1.导入所需要的库

# 导入数据处理所需要的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import font_manager
from sklearn.model_selection import train_test_split,cross_val_score  
from sklearn.metrics import confusion_matrix,roc_curve,roc_auc_score
from sklearn.metrics import classification_report,r2_score
from sklearn.ensemble import RandomForestClassifier

train_test_split函数用于将数据集划分为训练集和测试集,以便在机器学习任务中进行模型的训练和评估。它接受输入数据和标签,并返回划分后的训练集和测试集。 cross_val_score函数用于执行交叉验证,评估模型的性能。它接受一个分类器对象、输入数据和标签,并返回每次交叉验证的得分列表。

2.导入数据

df = pd.read_csv("waterQuality1.csv")
df_no_duplicates = df.drop_duplicates(inplace=True)                    
df['is_safe'] = pd.to_numeric(df['is_safe'],errors='coerce')
df = df.dropna()

 3.用随机森林模型进行拟合

model = RandomForestClassifier(random_state=42)
model.fit(X_train,y_train)

4.模型建立后,我们用交叉验证来验证随机森林的可用性

cv_scorec = cross_val_score(model,X_train,y_train,cv = 5,scoring='accuracy')    #cv 表示交叉验证几次
print("交叉验证准确度",cv_scorec)
print("平均准确度",cv_scorec.mean())

5.验证后发现随机森林非常契合,我们来评估一下这个模型,这里可以使用ROC曲线,AUC值等,混淆矩阵也可以,我这里以混淆矩阵为例

conf_matrix = confusion_matrix(y_test,y_pred)
plt.figure(figsize=(8,6))
sns.heatmap(conf_matrix,annot = True,fmt = 'd',cmap = 'Blues',cbar = False)
plt.title('混淆矩阵')
plt.xlabel('预测标签')
plt.ylabel('真实标签')
plt.show()         # 显示图表

 6.特征重要性分析

feature_importance = model.feature_importances_    

 我们通过feature_importances_来获取代码

7. 通过条形图来显示出来

for index ,value in enumerate(feature_importance_df['Importance']):
    plt.text(value,index,f'{value:.4f}',ha = 'left' ,va = 'center')

plt.title('特征重要性')
plt.show()

完整代码的效果图

有想要数据集和完整代码的请私信我,(数据来源:kaggle社区) 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐