树叶云AI教程:AI人工智能 在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']

现在,下面的命令将显示它们被映射到二进制值 01。这里 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]

上述 01 系列是肿瘤类别的预测值 – 恶性和良性。

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

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

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

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

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/231970.html<

(0)
管理的头像管理
上一篇2025-04-19 23:02
下一篇 2025-04-19 23:03

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注