机器学习是人工智能的一种类型,通过使用算法或方法从原始数据中提取模式。
ML的主要重点是让计算机系统从经验中学习,而不需要明确的编程或人为干预。
对机器学习的需求。
此时此刻,人类是地球上最聪明、最先进的物种,因为他们可以思考、评估和解决复杂的问题。另一方面,人工智能正处于初始阶段,还没有超过人类的智慧。
由于可用数据的数量和种类不断增加,计算处理更加便宜和强大,以及可负担的数据存储,机器学习 对以下方面至关重要:
*产生能够分析更大、更复杂数据的模型,并提供更快和更准确的结果。
建立精确的模型,确保组织有更好的机会识别有利可图的机会或避免未知的风险。
为什么以及何时让机器学习
有几种情况下,我们需要机器以高效率和巨大的规模做出数据驱动的决策,例如。
缺少人类的专业知识。
在缺乏人类专业知识的情况下,如在未知地区或空间星球的导航,需要机器学习。
动态场景
随着时间推移不断变化的场景,需要机器学习并采取各种数据驱动的决策。
将专业知识转化为计算任务的困难
可能有各种领域,人类拥有自己的专业知识,但他们无法将专业知识转化为计算任务,如语音识别和认知任务。
机器学习的挑战
虽然机器学习正在迅速发展,但它仍然有很长的路要走。这背后的原因是ML还没有能够克服以下挑战。
耗时的任务--数据采集、特征选择和检索需要消耗大量的时间。
缺乏专家人员--由于ML仍在发展中,专家的可用性是一项艰难的工作。
过度拟合和欠拟合的问题- 如果模型过度拟合或欠拟合,它就不能很好地代表问题的情况。
部署的困难- ML项目的复杂性使得它很难在现实生活中被部署。
数据的质量--为ML算法拥有高质量的数据是一个挑战。使用低质量的数据会导致与数据预处理和特征提取有关的问题。
机器学习的应用。
机器学习是发展最迅速的技术,用于解决现实世界中的复杂问题,这些问题无法通过传统方法解决,例如。
情感分析
股票市场分析和预测
语音
合成。
客户细分。
欺诈检测。
天气预报和预测。
为什么Python用于机器学习?
一套广泛的软件包。
Python有一套广泛而强大的软件包,可用于各种领域,如numpy、scipy、pandas和scikit learn。
简单的原型设计。
Python为开发新的算法提供了简单而快速的原型设计。
Python有用于数据加载、可视化、统计、自然语言处理和图像处理的库,为数据科学家提供了大量的通用和特殊用途的功能。
安装
对于机器学习项目的工作,我们将使用预先包装好的Python分布。Anaconda。
Anaconda是一个用于科学计算的Python 和R编程语言的发行版,其目的是简化软件包的管理和部署。
该发行版包括适用于Windows、Linux和macOS的数据科学包。
Anaconda带有NumPy、SciPy、matplotlib、pandas、IPython、Jupyter Notebook和scikit-learn。
要使用Anaconda建立一个Python环境,请使用以下步骤。
使用此链接从Anaconda分布中下载所需的安装包。
你可以根据你的要求选择Windows、Mac和Linux。
接下来,选择你想在机器上安装的python版本。最新的python版本是3.9。在这里你会得到64位和32位的安装程序选项。
在选择了操作系统和python版本之后,它将在你的电脑上下载Anaconda安装程序。双击该文件,安装程序将安装Anaconda软件包。
Python ML 生态系统的组件。
构成Python机器学习生态系统组件的核心库是。
Jupyter笔记本
它是一个在浏览器中运行代码的互动环境。它是一个探索性数据分析的伟大工具,被数据科学家广泛使用,也可以很容易地将代码、文本和图像纳入其中。
NumPy
它是用Python 进行科学计算的基本软件包,包含了多维数组的功能,高级数学函数,如线性代数运算和傅里叶变换,以及伪随机数生成器。
Matplotlib
它是一个全面的库,用于在Python中创建静态、动画和交互式可视化。
Pandas
它是一个快速、强大、灵活和易于使用的开源数据分析和操作工具,建立在Python编程语言之上。
了解你的任务和了解你的数据
机器学习过程中最重要的部分是了解你正在处理的数据以及它与你要解决的任务之间的关系。
随机选择一种算法 并把你的数据扔给它是没有效果的。
在你开始建立模型之前,有必要了解你的数据集是怎么回事,因为每种算法在什么样的数据和什么样的问题设置方面是不同的,它最适合。
机器学习的方法。一旦你对你的数据有了清楚的了解,你就可以根据以下方法选择最佳算法来解决你的问题。
1.监督式学习
在监督学习中,用户向算法提供成对的输入和期望的输出,而算法则找到一种方法来产生给定的期望输出。
监督学习的最常见形式是分类和回归。
分类是用来将类似的数据点归入不同的部分。
回归输出一个数字而不是一个类别,在预测股票价格、事件的概率、甚至某一天的温度等问题时非常有用。
监督学习任务的例子有。
预测房屋价格。
这里的输入可以是平方英尺,房间数量,特征,房子是否有花园。
通过利用来自数以千计的房屋、其特征和价格的数据,我们现在可以训练一个有监督的机器学习模型,根据该模型观察到的例子来预测新房子的价格。
检测信用卡交易中的欺诈活动。
这里的输入是信用卡交易的记录,而输出是它是否有可能是欺诈性的。
其他的例子有天气预测、股票预测等等。
2.无监督学习。
在无监督学习中,只有输入数据是已知的,而没有给算法提供已知的输出数据。
在现实生活中,无监督学习的一个例子是将不同颜色的硬币分类到不同的堆里。通过观察它们的特征,如颜色,你可以看到哪些硬币是相关的,并将它们归入正确的组别。
无监督学习通常被用于聚类和异常检测。
聚类是创建具有不同特征的群体的行为。它试图在一个数据集中找到各种子群。在聚类中,关联学习发现了描述你的数据的规则。
异常检测是识别与大多数数据不同的罕见或不寻常的项目。
无监督学习任务的例子包括。
将客户划分为具有类似偏好的群体
--给定一组客户记录,你可能想识别哪些客户是类似的,是否有具有类似偏好的客户群体。
对于一个购物网站来说,这些群体可能是 "父母"、"书虫 "或 "游戏者"。因为你事先不知道这些群体可能是什么,甚至不知道有多少,所以你没有已知的产出。
检测网站的异常访问模式
--为了识别滥用或错误,找到不同于常规的访问模式往往是有帮助的。每个异常模式都可能非常不同,而且你可能没有任何异常行为的记录实例。因为在这个例子中,你只观察流量,而你不知道什么是正常和异常行为,这是一个无监督的问题。
3.半监督学习。
这是有监督和无监督方法的混合。
它走的是中间路线,能够将少量的标记数据与更大的未标记数据集混合在一起。
4.强化学习。
与其他方法相比,它不太常见,也更复杂。它不使用标签,而是使用奖励来学习。
该方法使用偶尔的积极和消极反馈来强化行为。
用Python进行机器学习的介绍。最初发表在Medium上的Javarevisited,人们通过强调和回应这个故事来继续对话。