📜  sklearn 准确性 - Python (1)

📅  最后修改于: 2023-12-03 15:20:09.322000             🧑  作者: Mango

sklearn 准确性 - Python

Scikit-learn(sklearn)是非常流行的机器学习库,它的主要目标是为机器学习提供统一的界面,便于用户使用不同的算法进行建模、评估和预测。在机器学习中,模型的准确性(Accuracy)是一个重要的评价指标,它是指在所预测的样本中,模型正确分类的比例。sklearn提供了几种方法来评估机器学习模型的准确性,下面将介绍这些方法。

导入sklearn及相关库

首先,我们需要导入sklearn以及相关库,这里我们导入numpy用于数组操作,pandas用于数据处理,以及sklearn中的准确性评估指标和数据集:

import numpy as np
import pandas as pd
from sklearn import metrics
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
加载和准备数据

我们使用经典数据集iris,其包含了150个样本,每个样本有4个特征值(萼片长度、萼片宽度、花瓣长度、花瓣宽度),样本被分为3个不同种类的鸢尾花。我们使用pandas将其转换为DataFrame格式,然后将其分为训练集和测试集。

iris = load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df['target'] = iris.target

X_train, X_test, y_train, y_test = train_test_split(df[iris.feature_names], df['target'], test_size=0.3, random_state=0)
计算准确性

sklearn提供了几种方法来计算模型的准确性,下面将介绍它们。

accuracy_score

accuracy_score是最常用的准确性评估指标,它计算预测值和真实值相同的比例。

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()
lr.fit(X_train, y_train)

y_pred = lr.predict(X_test)

print("Accuracy:", metrics.accuracy_score(y_test, y_pred))

输出结果:

Accuracy: 0.9777777777777777
confusion_matrix

混淆矩阵(Confusion Matrix)是另一种评价分类模型性能的方法,它以表格形式展示了分类器的预测结果和真实值之间的关系。混淆矩阵的四个元素分别为True Positive(TP)、False Positive(FP)、True Negative(TN)、False Negative(FN)。

print("Confusion Matrix:\n", metrics.confusion_matrix(y_test, y_pred))

输出结果:

Confusion Matrix:
 [[16  0  0]
 [ 0 17  1]
 [ 0  0 11]]
classification_report

classification_report是一个非常详细的评估指标,它展示了每个类别的精确度(precision)、召回率(recall)和F1值(F1-score)。

print("Classification Report:\n", metrics.classification_report(y_test, y_pred, target_names=iris.target_names))

输出结果:

Classification Report:
               precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        16
  versicolor       1.00      0.94      0.97        18
   virginica       0.92      1.00      0.96        11

    accuracy                           0.98        45
   macro avg       0.97      0.98      0.97        45
weighted avg       0.98      0.98      0.98        45
总结

在机器学习中,模型的准确性是一个非常重要的评价指标,sklearn提供了几种方法来评估机器学习模型的准确性。本文介绍了accuracy_score、confusion_matrix和classification_report,读者可以根据实际情况选择不同的准确性评估指标。