当前位置: 首页 > 科技观察

在机器学习中实施随机森林指南

时间:2023-03-17 10:52:00 科技观察

随着机器学习模型在预测和分析数据方面变得越来越流行,随机森林的使用正在获得动力。随机森林是一种监督学习算法,用于机器学习领域的回归和分类任务。它的工作原理是在训练时构建大量决策树并输出类,可以是类的模式(分类)或单棵树的平均预测(回归)。在本文中,我们将讨论如何使用在线真实数据集实现随机森林算法。我们还将提供详细的代码解释和每个步骤的描述,以及模型性能和可视化的评估。我们将使用的数据集是“BreastCancerWisconsin(Diagnostic)Dataset”,它是公开可用的,可通过UCI机器学习存储库访问。该数据集有569个实例,具有30个属性和两个类别——恶性和良性。我们的目标是根据30个属性对这些实例进行分类,并确定它们是良性还是恶性。您可以从https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data下载数据集。首先,我们将导入必要的库:importpandasaspdimportnumpyasnpiportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportaccuracy_score,confusion_matrix,classification=pd.read_csv(r"C:\Users\User\Downloads\data\breast_cancer_wisconsin_diagnostic_dataset.csv")df输出:在建立模型之前,我们需要对数据进行预处理。由于'id'和'Unnamed:32'列对我们的模型没有用,我们将删除它们:df=df.drop(['id','Unnamed:32'],axis=1)dfoutput:Next,我们会将“诊断”列分配给我们的目标变量并将其从我们的特征中删除:target=df['diagnosis']features=df.drop('diagnosis',axis=1)进入训练集和测试集。我们将使用70%的数据进行训练,30%的数据用于测试:X_train,X_test,y_train,y_test=train_test_split(features,target,test_size=0.3,random_state=42)对我们的数据进行预处理并分成训练集和测试集,我们现在可以构建我们的随机森林模型:rf=RandomForestClassifier(n_estimators=100,random_state=42)rf.fit(X_train,y_train)这里我们将森林中决策树的数量设置为100,并设置随机状态以确保可重现结果。现在,我们可以评估模型的性能。我们将使用准确分数、混淆矩阵和分类报告进行评估:)print("ConfusionMatrix:\n",conf_matrix)#ClassificationReportclass_report=classification_report(y_test,y_pred)print("ClassificationReport:\n",class_report)输出:准确率分数告诉我们模型的正确程度classifyinginstances的表现如何。混淆矩阵让我们更好地了解我们模型的分类性能。分类报告为我们提供了两个类别的精度、召回率、f1-score和支持值。最后,我们可以可视化模型中每个特征的重要性。我们可以通过创建一个显示特征重要性值的条形图来做到这一点:figure(figsize=(12,8))feat_imp.plot(kind='bar')plt.ylabel('FeatureImportanceScore')plt.title("FeatureImportance")plt.show()输出:这个条形图显示每个特征的重要性按降序排列。我们可以看到前三个重要特征是MeanPit、WorstPit和WorstRegion。总之,在机器学习中实现随机森林算法是分类任务的有力工具。我们可以使用它根据多个特征对实例进行分类并评估我们模型的性能。在本文中,我们使用在线真实世界数据集,并提供详细的代码解释和每个步骤的描述,以及模型性能和可视化的评估。