Python中的机器学习--初学者的简易指南

141 阅读13分钟

机器学习的概念是 人工智能 领域的一个最新发展 许多领域的专家说,人工智能是人类的未来,它可以在许多方面提供帮助。这个词起源于20世纪50年代,来自最著名的数学家阿兰-图灵

他是第一台数字计算机的发明者。首先要向他和其他也有贡献的计算机科学家致敬。让我们来看看ML的完整路线图和它的发展。

什么是机器学习?

机器学习是指计算机在没有明确编程的情况下学习和运作的能力。 这是今天所有初学者学习和应用的最著名的定义。现在,让我们确保看看这个流程图,确定它与人工智能的另一个分支有什么联系。

机器学习流程图

我们可以看到,它是由计算机科学作为核心学科出现的。人工智能有一个主要的分支,即 "人工智能"。 数据科学。 它分为四个子领域。

  1. 数据挖掘
  2. 数据分析
  3. 大数据
  4. 机器学习(ML)

现在,如果我们观察这个图表,就会发现 数据是人工智能的主要依托。 没有任何数据或信息,我们就不能做任何事情。它需要以原始格式存在,以便分析和处理。

保持所有其他因素,我们还看到数据科学的所有四个子领域之间都有一个核心的依赖关系。

这表明,学习者需要有一些关于其他领域的基本知识,才能在其中的某个领域发展。这就是为什么对学生来说,这是一个即将到来的不同的职业机会。


在Python中学习机器学习的路线图

本节将向你展示我们如何开始学习机器学习,并从中获得一个好的职业。这是一个完整的途径。

  1. 概率和统计。首先从数学的基础知识开始。学习统计学的所有基础知识,如平均数、中位数和模式。回归、曲线拟合等主题也很重要。
  2. 视觉化的图表。各种图表,如柱状图、散点图、线状图、直线图等,对数据可视化很重要。
  3. 编程语言。编程语言是学习ML的必要条件。因为,我们可以依靠计算机进行复杂的数学运算,但是,为了获取、表示和分析数据,它们被证明是最有用的。Python和R在数据科学爱好者和ML工程师中最有名。
  4. 库。我 们需要对我们为ML选择的编程语言的数据分析的各种开发库有深刻的理解。他们帮助我们进行数值计算,数据预处理,轻松实现算法,并使数据可视化。
  5. 算法。各种算法对各种预测都很重要。Naive Bayse, Linear Regression, Decision Trees, Random Forests, XGBosst等等,它们的理论是很重要的。
  6. 数据处理技术。为了将原始数据转化为有用和可管理的数据,我们应该掌握数据预处理的技巧。各种编码技术如单帽编码和标签编码都很重要。

让我们详细看看其中的一些要点。

为什么选择Python用于机器学习?

当涉及到一个容易学习和理解的编程语言时,Python是开发者的选择

一般来说,它们是我们可以通过它来实现我们的想法并保持专业工作流程的工具。

代码帮助人们在一个特定的结构中分享和理解他们的知识。

Python是一种轻量级的通用编程语言。它是一个开源的项目。因此,我们可以为它的发展作出贡献。

访问www.python.org/ ,了解更多信息。

python的主要特点是,它是 面向对象(OOP)

其他OOP语言不同,**类的实例化、继承多继承封装**技术都很容易在Python中实现。

此外,它有广泛的库支持,用于各种应用,如网络开发、图形用户界面(GUI)开发、软件开发、数据科学和机器学习。对于机器学习,Python提供了以下库。

  1. Pandas:
  2. Numpy
  3. Matplotlib
  4. Seaborn
  5. Scipy
  6. Scikit Learn

这些是六个主要的库,我们可以通过它们进行各种ML操作。对于高级ML,还有其他五套主要库。

  1. Tensorflow。
  2. OpenCV
  3. Pytorch
  4. Keras
  5. Statsmodels

以上提到的库的概述

潘达

我们将从最重要的库开始,用于进行适当的数据清理和预处理。

Pandas 库。它主要是建立在Python的Numpy和Matplotlib 包上。数据准备是创建ML模型的最基本任务。所以,正是这个库让它变得更容易一些。

我们都知道,机器理解它可以对数据进行编码,并创建虚拟变量,为模型训练准备测试数据。访问链接 了解其文档和教程。

Numpy

全称是Numerical python。主要用于多维复杂数组和矩阵的计算,数学计算,以及科学计算。

该库已被证明是ML工程师准备的模型训练的最佳选择。IT的功能很强大,并且有ndarray的数据类型。最新的版本是正在使用的Numpy-1.21。更多信息请访问官方网站numpy.org/doc/。

Matplotlib

这个库是为数据可视化和演示目的而绘制图形的。对于数据科学和机器学习来说,这是一个非常合适且易于使用的API。它可以绘制以下图形。它有两类图 2D和3D图。

二维图包括。

  1. 散点图
  2. 柱状图
  3. 线形图
  4. 饼状图
  5. 箱形图
  6. 频率分布图
  7. 直方图
  8. 曲线及更多

三维图包括。

  1. 三维线图
  2. 线框图
  3. 表面图
  4. 三维表面图

我们还可以使用matplotlib中的一个特殊子模块来分析图像。它就是图像模块

先进的缩放功能包括图像绘制和伪色方案。请 访问这个链接 了解更多信息。

这里是一些图像的样本。

三维平面图

Seaborn

这个库是用于统计绘图的。就像matplotlib一样,我们可以绘制各种数据框架的有吸引力的图。我们还可以将不同的回归模型、函数可视化**,并且它有一个特殊的功能,即为同一数据框架的不同变量绘制多图。**这些是一些示例图。

Seaborn多图

Scipy

Scipy的意思是科学python。这个库主要类似于NumPy。但是,核心的区别在于它为物理学和高级数学提供了特殊的函数。

像超几何、抛物线圆柱体等主题都可以在这个API下找到。此外,它还有一组指数和三角函数,以支持复杂的计算。

与NumPy相比,Scipy的主要优势在于 它有助于计算微积分问题,如积分和推导。 想了解更多关于这个软件包的信息,请查看以下链接 用户指南.


不同机器学习算法的概述

现在让我们直接进入不同的机器学习算法,它们是如何表现的。本节将帮助你了解哪种类型的机器学习技术将根据需要适合特定的目的。

机器学习技术

机器学习有两种不同的技术。

  1. 监督式学习。这个概念中,模型在监督和标记的数据下学习。我们用一些独特的值来标记数据,然后根据我们的需要来训练模型。
  2. 无监督学习。这个概念中,模型使用未标记的数据进行自我学习。我们只需要做一些数据清理,然后把其他预测工作交给机器。

机器学习的算法

没有算法,机器学习只是一个夜晚的梦。因此,人们应该对所有的基本算法有正确的认识。它们为用户的规范提供正确和相关的输出。它们取决于核心的统计分析。有两种主要类型。

  1. 分类。适用于离散数据或有较大价值差异的数据。
  2. 回归。适用于连续数据或数值略有变化的数据。

两者都有相同的算法,但它们因创造而不同。下面是一个AI/ML从业者应该知道的七个最基本和最重要的算法的列表。

  1. 线性回归。在图形上的数据点流中找到最适合的线。
  2. Logistic回归。使用曲线找到特定条件下的概率。
  3. 决策树。根据树的节点的不同条件做出决策。
  4. 随机森林。各种决策树的集合,对大量的数据进行预测决策。
  5. 支持向量机。将数据点分离成类进行分析
  6. k-means聚类算法。建立不同数据点的聚类,并检测其中的奇异点。
  7. k-最近的邻居:在特定的测试案例上为数据点寻找最近的邻居。

如何用Python进行机器学习--一个简单的例子

对于初学者来说,你被要求解决商业问题和测试案例。这也被称为预测分析(Predictive Analysis)。

现在,我们有了ML的主要工具和技术,我们知道什么是ML。

让我们应用一些概念,为我们的ML之旅开个好头。ML是一个命令机器学习的渐进模式。因此,为了开个头,我们将用python实现一个线性回归算法,并绘制一些图。

关于Anaconda的更多信息,请访问www.anaconda.com/products/in…

根据谷歌不同职位员工的工资的现有数据,实现决策树分类算法

  • 环境。A naconda
  • **IDE。**Jupyter笔记本
  • 操作系统。Windows 10以上
  • Python版本。 Python 3.8.5(预装在Anaconda中)。
  • 数据集: salary.csv

1.读取数据集

Pandas模块帮助我们读取数据集。它可以是任何形式的,如文本、CSV、excel。潘达斯模块有不同的方法来读取每种文件类型。它也可以通过数据API退出的给定链接来读取。

代码。

import pandas as pd
data = pd.read_csv('salary.csv')
data.head()

从潘达斯读取数据集 1

这是一个CSV文件,所以我们使用**read_csv()方法。然后我们将其存储在一个变量中--"data"。使用head()**方法来查看数据集的前五行。

2.检查数据集的数据类型和形状

要知道数据集中存在什么类型的变量,我们需要确保我们有一个所有数据类型的记录。为了检查它,可以随时使用pandas的简单属性类型。而为了计算行和列的数量,我们有shape 属性。这将返回一个行和列的元组

data.dtypes
data.shape

检索数据集的形状和数据类型,我们知道它有**16行和4列。**这有助于了解这个数据集有多大。

3.检查所有的缺失值

一个数据集可能由于几个原因而不完整。这些差异可能非常大,可能导致错误的预测。但是,**isna()函数会扫描所有的值,并在任何一列有缺失值时返回数字。为了检查总数值,我们使用sum()**函数和isna()函数。

代码。

data.isna().sum()

检查缺失的值

4.选择目标变量

预测结果取决于与目标 变量一起运行的连续变量。这个变量对测试用例分析至关重要。如果我们有一个名义数据集,我们可以很容易地识别它。给定的问题陈述描述了工资 是我们的主要目标变量。因此,超过10,000rs的列的工资是适合的。

代码。

inputs = data.drop('salary more than 10,000rs', axis = 'columns')

target = data['salary more than 10,000rs']

目标变量的选择

5.给数据集贴标签

对于监督学习模型, 我们需要标记的数据。因为它是这种类型的ML算法的核心属性。

这可以通过sci-kit-learn库的预处理 模块来完成。

我们从中导入**LabalEncoder()**类。**fit_transform()**函数对相关数据进行标注,以便机器理解。我们为每一列创建该类的三个实例。

from sklearn.preprocessing import LabelEncoder
le_company = LabelEncoder()
le_job = LabelEncoder()
le_degree = LabelEncoder()

inputs['company_n'] = le_company.fit_transform(inputs['company'])
inputs['job_n'] = le_job.fit_transform(inputs['job'])
inputs['degree_n'] = le_degree.fit_transform(inputs['degree'])

给数据贴标签

这样,三个新的列就被添加到了数据集中。

查看数据集

在得到标记的数据后,我们删除不需要的列。然后,数据集的新名字被命名为inputs_n

代码。

inputs_n = inputs.drop(['company','job','degree'],axis='columns')
inputs_n

新的数据集

目标数据集

6.实施算法

我们实现了分类器类型的决策树算法,因为可用的数据是离散形式的。我们从scikit-learn的树模块中导入该算法。代码如下。

代码。

from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()

model.fit(inputs_n, target)

model.score(inputs_n,target)

model.predict([[2,1,0]])

model.predict([[2,1,1]])

决策树的实现

解释一下。

  1. 我们创建一个 DecisionTreeClassifier 类的实例。然后,为了进行预测,我们使用fit函数。这个函数需要两个参数。目标变量连续变量 。这实现了有关参数的算法。
  2. 然后使用**score()**函数检查训练得分。它的范围是0到1。如果分数是1,那么模型就是100%准确的。百分比由使用小数点前的数字的点决定。例如,我们的分数是0.78,那么训练百分比就是78%。
  3. predict函数将一个输入数组作为参数。这就给出了结果。我们给该数组三个输入。因为我们有三个测试变量1) 公司_n,2) 工作_n 3) 学位_n
  4. 该算法将比较每个输入的目标变量和工资是否会超过10000卢比。如果答案是1,那么这个人的收入就超过一万卢比,但是,如果答案是0,那么这个人的收入就不超过一万卢比。

现实世界中的机器学习

机器学习有大量的应用,而且在各个领域都有应用。这六个主要领域是。

  1. 技术
  2. 工业
  3. 金融业
  4. 电子商务
  5. 物联网(IoT)
  6. 天气报告

结语

因此,我们学会了如何在Python中进行机器学习。我们了解了各种库和它们的用途。跟随这篇文章,在你的机器学习之旅中获得一个开端。有很多东西要讲,而且还会有很多东西要讲。因此,请确保你读完本文中的所有内容,让自己开始了解Python中机器学习的最主要方面。