Redian新闻
>
机器学习:使用 Python 进行分类 | Linux 中国

机器学习:使用 Python 进行分类 | Linux 中国

科技
 
导读:机器学习(ML)就是,分析一组数据以预测结果。Python 被认为是 ML 的最佳编程语言选择之一。在本文中,我们将讨论使用 Python 进行分类的机器学习。
本文字数:2924,阅读时长大约:4分钟

假设你想教孩子区分苹果和橙子。有多种方法可以做到这一点。你可以让孩子触摸这两种水果,让他们熟悉形状和柔软度。你还可以向她展示苹果和橙子的多个例子,以便他们可以直观地发现差异。这个过程的技术等价物被称为机器学习。

机器学习教计算机解决特定问题,并通过经验变得更好。这里讨论的示例是一个分类问题,其中机器被赋予各种标记示例,并期望使用它从标记样本中获得的知识来对未标记样本进行标记。机器学习问题也可以采用回归的形式,其中期望根据已知样本及其解决方案来预测给定问题的实值(real-valued)解决方案。分类(Classification)回归(Regression)被广泛称为监督学习(supervised learning)。机器学习也可以是无监督(unsupervised)的,机器识别未标记数据中的模式,并形成具有相似模式的样本集群。机器学习的另一种形式是强化学习(reinforcement learning),机器通过犯错从环境中学习。

分类

分类是根据从已知点获得的信息来预测一组给定点的标签的过程。与一个数据集相关的类别或标签可以是二元的,也可以是多元的。举例来说,如果我们必须给与一个句子相关的情绪打上标签,我们可以把它标记为正面、负面或中性。另一方面,我们必须预测一个水果是苹果还是橘子的问题将有二元标签。表 1 给出了一个分类问题的样本数据集。

在该表中,最后一列的值,即贷款批准,预计将基于其他变量进行预测。在接下来的部分中,我们将学习如何使用 Python 训练和评估分类器。

< 如显示不全,请左右滑动 >
年龄信用等级工作拥有房产贷款批准
35
32
22一般
42

表 1

训练和评估分类器

为了训练分类器(classifier),我们需要一个包含标记示例的数据集。尽管本节不涉及清理数据的过程,但建议你在将数据集输入分类器之前阅读各种数据预处理和清理技术。为了在 Python 中处理数据集,我们将导入 pandas 包和数据帧(DataFrame)结构。然后,你可以从多种分类算法中进行选择,例如决策树(decision tree)支持向量分类器(support vector classifier)随机森林(random forest)、XG boost、ADA boost 等。我们将看看随机森林分类器,它是使用多个决策树形成的集成分类器。

  1. from sklearn.ensemble import RandomForestClassifier
  2. from sklearn import metrics
  3. classifier = RandomForestClassifier()
  4. #creating a train-test split with a proportion of 70:30
  5. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
  6. classifier.fit(X_train, y_train) # 在训练集上训练分类器
  7. y_pred = classifier.predict(X_test) # 用未知数据评估分类器
  8. print("Accuracy: ", metrics.accuracy_score(y_test, y_pred)) # 用测试计划中的实际值比较准确率

虽然这个程序使用准确性作为性能指标,但应该使用多种指标的组合,因为当测试集不平衡时,准确性往往会产生非代表性的结果。例如,如果模型对每条记录都给出了相同的预测,而用于测试模型的数据集是不平衡的,即数据集中的大多数记录与模型预测的类别相同,我们就会得到很高的准确率。

调整分类器

调优是指修改模型的超参数(hyperparameter)值以提高其性能的过程。超参数是可以改变其值以改进算法的学习过程的参数。

以下代码描述了随机搜索超参数调整。在此,我们定义了一个搜索空间,算法将从该搜索空间中选择不同的值,并选择产生最佳结果的那个:

  1. from sklearn.model_selection import RandomizedSearchCV
  2. #define the search space
  3. min_samples_split = [2, 5, 10]
  4. min_samples_leaf = [1, 2, 4]
  5. grid = {‘min_samples_split : min_samples_split, min_samples_leaf : min_samples_leaf}
  6. classifier = RandomizedSearchCV(classifier, grid, n_iter = 100)
  7. # n_iter 代表从搜索空间提取的样本数
  8. # result.best_score result.best_params_ 可以用来获得模型的最佳性能,以及参数的最佳值
  9. classifier.fit(X_train, y_train)

投票分类器

你也可以使用多个分类器和它们的预测来创建一个模型,根据各个预测给出一个预测。这个过程(只考虑为每个预测投票的分类器的数量)被称为硬投票。软投票是一个过程,其中每个分类器产生一个给定记录属于特定类别的概率,而投票分类器产生的预测是获得最大概率的类别。

下面给出了一个创建软投票分类器的代码片段:

  1. soft_voting_clf = VotingClassifier(
  2. estimators=[(‘rf’, rf_clf), (‘ada’, ada_clf), (‘xgb’, xgb_clf), (‘et’, et_clf), (‘gb’, gb_clf)],
  3. voting=’soft’)
  4. soft_voting_clf.fit(X_train, y_train)

这篇文章总结了分类器的使用,调整分类器和结合多个分类器的结果的过程。请将此作为一个参考点,详细探讨每个领域。


via: https://www.opensourceforu.com/2022/05/machine-learning-classification-using-python/

作者:Gayatri Venugopal 选题:lkxed 译者:geekpi 校对:turbokernel

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :geekpi
💎💎💎💎
翻译: 1701.5 篇
|
贡献: 3142 天
2013-10-25
2022-06-02
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
英伟达在提升 Linux 上的 GPU 使用体验上迈出了一大步 | Linux 中国在 Linux 上使用 Bash 创建一个临时文件 | Linux 中国Python 中可观测性的 7 个关键部分 | Linux 中国在 Linux 上使用 Rhythbox 听音乐 | Linux 中国如何在 Linux 桌面中启用 “激活 Linux” 水印通知 | Linux 中国宇治的平等院/抹茶 - 京都日记(9)退休之地搜寻记 (1)使用 dnf 进行 Linux 包管理 | Linux 中国使用 Python 的 requests 和 Beautiful Soup 来分析网页 | Linux 中国我是如何使用 Linux fmt 命令来格式化文本 | Linux 中国在 Python 中使用机器学习来检测钓鱼链接 | Linux 中国Linux Lite 6.0 发布:弃用 Firefox,默认浏览器使用 Chrome | Linux 中国机器学习:使用 Python 进行预测 | Linux 中国拆卸螺冒该用锤子还是扳手呢?使用 Linux 上的开源财务工具 Skrooge 管理你的预算 | Linux 中国在 Linux 上学习 C 语言的五种方式 | Linux 中国分享 8 篇使用 Linux 命令行的技巧 | Linux 中国Python,数据岗位的技术弄潮儿Python批量将Photoshop文件保存为图片修复 Ubuntu Linux 中 “Command ‘python’ not found” 的错误 | Linux 中国Rebeco:使用机器学习预测股票崩盘风险使用 OpenSMTPD 将邮件中继到多个 smarthost | Linux 中国Thonny:在学校教授 Python 编程的理想 IDE | Linux 中国检查 Linux 磁盘使用情况 | Linux 中国这菜的味道里,有飞扬的青春利用python腾讯在线文档的修改在 Linux 中使用组合键输入隐藏的字形 | Linux 中国【登陆西西里】古城锡拉库萨上一个说“丼”不读jǐng的人,已经被我骂哭了在 Linux 上使用 sudo 命令的 5 个理由 | Linux 中国npj: 新型光催化剂开发—使用会解释的机器学习如何在 Linux 中使用 Pandoc 转换文件格式 | Linux 中国使用 watch 和 tail 命令监视 Linux 上的活动 | Linux 中国彭博社开源 Memray,一个 Python 内存剖析器 | Linux 中国使用 apt 进行 Linux 包管理 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。