Python实现机器学习(上)— 基础知识介绍及环境部署

Python实现机器学习(上)— 基础知识介绍及环境部署_第1张图片

前言:Hello大家好,我是小哥谈。本门课程将介绍人工智能相关概念,重点讲解机器学习原理机器基本算法(监督学习及非监督学习)。使用python,结合sklearn、jupyter-notebook进行编程,介绍iris、匹马印第安人数据集,建立AI模型并评估其表现。本节课主要面向刚毕业高中生、大学生、硕士生等对AI行业充满向往的同学们!

     目录

1.人工智能是什么?

2.如何入门人工智能?

3.机器学习的主要类别有哪些?

3.1 监督式学习

3.2 非监督式学习

3.3 强化学习

4.开发环境介绍及部署

4.1 Python介绍

4.2 scikit-learn介绍

4.3 jupyter notebook介绍

4.4 开发环境准备

Python实现机器学习(上)— 基础知识介绍及环境部署_第2张图片

1.人工智能是什么?

人工智能(英语:Artificial Intelligence,缩写为AI)亦称机器智能,指由人制造出来的可以表现出智能的机器。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。该词也指出研究这样的智能系统是否能够实现,以及如何实现。人工智能于一般教材中的定义领域是“智能主体(intelligent agent)的研究与设计”,智能主体指一个可以观察周遭环境并作出行动以达致目标的系统。约翰·麦卡锡于1955年的定义是“制造智能机器的科学与工程”。安德里亚斯·卡普兰(Andreas Kaplan)迈克尔·海恩莱因(Michael Haenlein)将人工智能定义为“系统正确解释外部数据,从这些数据中学习,并利用这些知识通过灵活适应实现特定目标和任务的能力”。人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及范围极广。

AI的核心问题包括建构能够跟人类似甚至超卓的推理、知识、规划、学习、交流、感知、移物、使用工具和操控机械的能力等。当前有大量的工具应用了人工智能,其中包括搜索和数学优化、逻辑推演。而基于仿生学、认知心理学,以及基于概率论和经济学的算法等等也在逐步探索当中。思维来源于大脑,而思维控制行为,行为需要意志去实现,而思维又是对所有数据采集的整理,相当于数据库,所以人工智能最后可能会演变为机器替换人类

领域

人工智能行业所涵盖的领域,主要有:机器学习计算机视觉自然语言处理语音识别数据挖掘推荐系统等等...

Python实现机器学习(上)— 基础知识介绍及环境部署_第3张图片

分类 

人工智能主要分弱人工智能强人工智能超人工智能三类,其含义分别解释如下:

  • 弱人工智能(Artificial Narrow Intelligence(ANI)):弱人工智能是擅长于单个方面的人工智能。
  • 强人工智能(Artificial General Intelligence(AGI)):人类级别的人工智能。强人工智能是指在各方面都能和人类比肩的人工智能,人类能干的脑力活它都能干。
  • 超人工智能(Artificial Super Intelligence(ASI)):知名人工智能思想家Nick Bostrom把超级智能定义为“在几乎所有领域都比最聪明的人类大脑都聪明很多,包括科学创新、通识和社交技能等”。

总结:♨️♨️♨️

人工智能即让机器模拟人的各种能力,包括:感知、推理、创造、理解、语言、逻辑、社交、情感等等。


2.如何入门人工智能?

人工智能(AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它是计算机科学的一个分支,旨在理解智能的实质,并生产出一种能以人类智能相似的方式做出反应的智能机器。

如果你想入门人工智能,你需要了解机器学习深度学习这两种实现人工智能的方法。机器学习是一种通过让计算机从数据中学习并自动改进算法的方法,从而使计算机能够解决一些复杂的问题。而深度学习是机器学习的一个分支,它模仿人脑神经网络的工作原理,通过构建深层次的神经网络来实现更加复杂的任务。

Python实现机器学习(上)— 基础知识介绍及环境部署_第4张图片

总结:♨️♨️♨️

机器学习是一种实现人工智能的方法,而深度学习是一种实现机器学习的技术。

机器学习:使用算法来解析数据并从中学习,然后对真实世界中的事件作出决策和预测,比如:垃圾邮件检测、房价预测等。

深度学习:模仿人类神经网络建立模型并进行数据分析,比如:人脸识别、语义理解、无人驾驶等。

要入门人工智能,你可以从学习机器学习算法开始,了解常见的机器学习算法和它们的应用。你还可以学习编程语言和工具,如Python和TensorFlow,来实现机器学习和深度学习模型。同时,你可以通过参加在线课程、阅读相关书籍和论文,以及参与项目实践来提升自己的人工智能技能。

总结来说,人工智能入门涉及学习机器学习和深度学习的基本概念和方法,掌握相关的编程语言和工具,以及通过实践项目来应用所学知识。这将帮助你逐步了解和掌握人工智能的基础,并为进一步深入研究奠定基础。

Python实现机器学习(上)— 基础知识介绍及环境部署_第5张图片


3.机器学习的主要类别有哪些?

3.1 监督式学习

监督式学习是一种机器学习方法,其中算法通过使用带有标签的训练数据集来学习模式和规律。在监督式学习中,我们有一个包含输入特征和对应标签的训练数据集,算法通过学习输入与标签之间的关系,从而能够对新的输入进行预测或分类。

具体来说,监督式学习的目标是通过找到一个函数,将输入映射到输出。这个函数被称为模型,它可以是线性模型、决策树、支持向量机、神经网络等等。在训练阶段,模型使用训练数据集来调整自身的参数,使其能够最好地拟合训练数据中的特征和标签之间的关系。然后,在预测阶段,模型可以根据已学习到的规律对新的输入进行预测或分类。

举个例子,如果我们想构建一个垃圾邮件过滤器,我们可以使用监督式学习。我们会收集一批已经标记好的电子邮件(训练数据集),其中包含了垃圾邮件和非垃圾邮件,并提取出一些特征,比如邮件中的单词、发件人信息等。然后,我们使用这些特征和标签进行训练,让模型学会识别垃圾邮件和非垃圾邮件之间的模式和规律。最后,当我们有一个新的未标记的电子邮件时,模型可以根据已学习到的规律预测它是垃圾邮件还是非垃圾邮件。

总结来说,监督式学习是一种常用的机器学习方法,通过使用带有标签的训练数据集来训练模型,并用于预测或分类新的输入数据。

监督式学习核心步骤:

(1)使用标签数据训练机器学习模型

  • 标签数据”是指由输入数据对应的正确的输出结果。
  • 机器学习模型”将学习输入数据与之对应的输出结果间的函数关系。

(2)调用训练好的机器学习模型,根据新的输入数据预测对应的结果。

Python实现机器学习(上)— 基础知识介绍及环境部署_第6张图片

3.2 非监督式学习

非监督式学习是机器学习的一种方法,其目标是从无标签的数据中发现隐藏的结构、模式或关系。与监督式学习不同,非监督式学习不需要预先提供标签或目标变量。相反,它通过对数据进行聚类、降维或异常检测等技术来发现数据的内在结构。

在非监督式学习中,算法主要关注数据本身的特征和相似性,以便从中提取有用的信息。常见的非监督式学习算法包括聚类算法(如K-means、层次聚类)降维算法(如主成分分析、独立成分分析)关联规则挖掘算法(如Apriori算法)等。

非监督式学习在许多领域都有广泛的应用,例如推荐系统、市场分割、图像分割、异常检测等。它可以帮助我们发现数据中的隐藏模式,从而提供洞察力和决策支持。

相比于监督式学习,非监督式学习不需要标签数据,而是通过引入预先设定的优化准则进行模型训练,比如自动将数据分为三类。

Python实现机器学习(上)— 基础知识介绍及环境部署_第7张图片

3.3 强化学习

强化学习是一种机器学习的方法,它通过与环境的交互来学习如何做出最优决策。在强化学习中,一个智能体从环境中观察到一系列状态,并通过采取不同的行动来影响环境。智能体通过接收环境反馈的奖励或惩罚来评估自己的行动,并利用这些信息来调整策略,以最大化长期累积的奖励。

强化学习的核心思想是基于试错学习。智能体通过尝试不同的行动并观察结果,逐步调整策略以获得更好的结果。这种学习方式类似于人类学习的方式,通过不断实践和反馈来提高自己的技能。

强化学习在许多领域都有广泛应用,包括机器人控制、游戏玩法、自动驾驶等。它能够处理复杂的决策问题,并能够在没有明确标签的情况下进行学习。

强化学习的例子有:马尔可夫决策过程(Markov Decision Process)

总结:♨️♨️♨️

监督式学习:基于数据及结果进行预测

非监督式学习:从数据中挖掘关联性

强化学习:通过与环境的交互来学习如何做出最优决策


4.开发环境介绍及部署

4.1 Python介绍

Python是一种高级、通用的编程语言,它具有简单易学、可读性强的特点。Python语言的设计注重代码的简洁和可读性,使得开发者能够更快速地编写清晰、可维护的代码。它广泛应用于数据分析、人工智能、网络开发、科学计算等领域。Python有丰富的第三方库和工具生态系统,例如NumPy、Pandas、Django等,这些库大大提高了开发效率。同时,Python也是一种跨平台的语言,可以在多个操作系统上运行。

Python语言特点:

(1)解释性:不需要编译成二进制代码,可以直接从源代码运行。

(2)面向对象:Python既支持面向过程的编程,也支持面向对象的编程。

(3)可移植性:由于它的开源本质,可以在不同平台进行开发。

(4)高层语言:无须考虑诸如如何管理程序使用的内存一类的底层细节

说明:♨️♨️♨️

Python官网:Welcome to Python.org

4.2 scikit-learn介绍

Scikit-learn是一个基于Python的机器学习库,它提供了许多用于数据预处理、建模和评估的工具和算法。它包含了各种常用的机器学习算法,例如分类回归聚类降维等。通过使用Scikit-learn,你可以轻松地构建和训练机器学习模型,并对其进行评估和优化。它还提供了丰富的功能,例如特征提取、特征选择和模型选择等,以帮助你更好地处理和分析数据。无论你是机器学习初学者还是专业人士,Scikit-learn都是一个非常有用的工具。

Scikit-learn特点:

(1)集成了机器学习中各类成熟的算法,容易安装和使用,样例丰富,教程和文档也非常详细。

(2)不支持Python之外的语言,不支持深度学习和强化学习。

说明:♨️♨️♨️

Scikit-learn中文社区:scikit-learn中文社区

Scikit-learn官方文档(中文版):scikit-learn (sklearn) 官方文档中文版

4.3 jupyter notebook介绍

Jupyter Notebook是一个开源的交互式计算环境,可以让你创建和共享实时代码、方程式、可视化和文本。它支持多种编程语言,包括Python、R和Julia等,并且可以在Web浏览器中运行。

Jupyter Notebook的主要特点是所见即所得的编辑和执行代码的能力。它以一种笔记本的形式组织代码和文本,并且你可以在笔记本中编写和运行代码块,同时还可以添加文本、图像、数学公式和交互式图表等内容。

Jupyter Notebook还具有代码自动补全、语法高亮、代码调试和丰富的展示功能等特性,使得它成为数据分析、机器学习、科学研究和教学等领域中广泛使用的工具。

Jupyter Notebook特点:

(1)允许把代码写入独立的cell中,然后单独执行。用户可以在测试项目时单独测试特定代码块,无需从头开始执行代码。

(2)基于web框架进行开发,非常方便。

说明:♨️♨️♨️

Jupyter Notebook官网:Project Jupyter | Home

4.4 开发环境准备

说明:♨️♨️♨️

安装Python:Python安装教程(2022最新)

安装Pycharm:PyCharm安装教程(详细步骤)

安装Anaconda:PyTorch基础知识(1)— PyTorch框架介绍和安装步骤

Jupyter Notebook教程:手把手教你安装Jupyter Notebook(保姆级教程)

新建开发环境,安装numpy、Scikit-learn库。

conda create -n env_name(环境名)

pip(conda)install package_name(包名)

你可能感兴趣的:(人工智能,人工智能,目标检测,深度学习,机器学习,python,开发语言)