LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 304|回复: 0

在Python中构建分类器的步骤

[复制链接]
发表于 2023-12-25 14:51:28 | 显示全部楼层 |阅读模式

在Python中构建分类器的步骤

为了在Python中构建分类器,将使用Python 3和Scikit-learn,这是一个用于机器学习的工具。 按照以下步骤在Python中构建分类器 -

第1步 - 导入Scikit-learn

这将是在Python中构建分类器的第一步。 在这一步中,将安装一个名为Scikit-learn的Python包,它是Python中最好的机器学习模块之一。 以下命令导入包 -

import sklearn

第2步 - 导入Scikit-learn的数据集

在这一步中,我们可以开始使用机器学习模型的数据集。 在这里,将使用乳腺癌威斯康星诊断数据库。 数据集包括有关乳腺癌肿瘤的各种信息,以及恶性或良性分类标签。 该数据集在569个肿瘤上具有569个实例或数据,并且包括关于30个属性或特征(诸如肿瘤的半径,纹理,光滑度和面积)的信息。 借助以下命令,导入Scikit-learn的乳腺癌数据集 -

from sklearn.datasets import load_breast_cancer

现在,以下命令将加载数据集。

data = load_breast_cancer()

以下是字典键列表 -

分类标签名称(target_names)

实际标签(目标)

属性/功能名称(feature_names)

属性(数据)


现在,使用以下命令,可以为每个重要信息集创建新变量并分配数据。 换句话说,可以用下列命令组织数据 -

label_names = data['target_names']
labels = data['target']
feature_names = data['feature_names']
features = data['data']

现在,为了使它更清晰,可以使用以下命令来打印类标签,第一个数据实例的标签,我们的功能名称和功能的值 -

print(label_names)

上述命令将分别打印恶性和良性的分类名称。输出结果如下 -

['malignant' 'benign']

现在,下面的命令将显示它们被映射到二进制值0和1。这里0表示恶性肿瘤,1表示良性癌症。得到以下输出 -

print(labels[0])
0

下面给出的两个命令将生成功能名称和功能值。

print(feature_names[0])
mean radius
print(features[0])
[ 1.79900000e+01 1.03800000e+01 1.22800000e+02 1.00100000e+03
  1.18400000e-01 2.77600000e-01 3.00100000e-01 1.47100000e-01
  2.41900000e-01 7.87100000e-02 1.09500000e+00 9.05300000e-01
  8.58900000e+00 1.53400000e+02 6.39900000e-03 4.90400000e-02
  5.37300000e-02 1.58700000e-02 3.00300000e-02 6.19300000e-03
  2.53800000e+01 1.73300000e+01 1.84600000e+02 2.01900000e+03
  1.62200000e-01 6.65600000e-01 7.11900000e-01 2.65400000e-01
  4.60100000e-01 1.18900000e-01]

从上面的输出中,可以看到第一个数据实例是一个半径为1.7990000e + 01的恶性肿瘤。

第3步 - 组织数据

在这一步中,将把数据分成两部分,即训练集和测试集。 将数据分割成这些集合非常重要,因为必须在未看到的数据上测试模型。要将数据分成集合,sklearn有一个叫做train_test_split()函数的函数。 在以下命令的帮助下,可以分割这些集合中的数据 -

from sklearn.model_selection import train_test_split

上述命令将从sklearn中导入train_test_split函数,下面的命令将数据分解为训练和测试数据。 在下面给出的例子中,使用40%的数据进行测试,其余数据将用于训练模型。

train, test, train_labels, test_labels = train_test_split(features,labels,test_size = 0.40, random_state = 42)

第4步 - 建立模型在这一步中,我们将建立模型。使用朴素贝叶斯算法来构建模型。 以下命令可用于构建模型 -

from sklearn.naive_bayes import GaussianNB

上述命令将导入GaussianNB模块。 现在,以下命令用来初始化模型。

gnb = GaussianNB()

将通过使用gnb.fit()将它拟合到数据来训练模型。

model = gnb.fit(train, train_labels)

第5步 - 评估模型及其准确性

在这一步中,我们将通过对测试数据进行预测来评估模型。为了做出预测,我们将使用predict()函数。 以下命令做到这一点 -

preds = gnb.predict(test)
print(preds)
## -- 结果如下
[1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1
0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0
0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0
0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0
1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0
1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0
1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0
1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1]

上述0和1系列是肿瘤类别的预测值 - 恶性和良性。

现在,通过比较两个数组即test_labels和preds,可以发现模型的准确性。使用accuracy_score()函数来确定准确性。 考虑下面的命令 -

from sklearn.metrics import accuracy_score
print(accuracy_score(test_labels,preds))
0.951754385965

结果显示NaïveBayes分类器准确率为95.17%。

通过这种方式,借助上述步骤,我们可以使用Python构建分类器。

//更多请阅读:https://www.yiibai.com/ai_with_python/ai_with_python_supervised_learning_classification.html


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表