人工智能-10种机器学习常见算法

机器学习是目前行业的一个创新且重要的领域。今天,给大家介绍机器学习中的10种常见的算法,希望可以帮助大家适应机器学习的世界。

1、线性回归

线性回归(Linear Regression)是目前机器学习算法中最流行的一种,线性回归算法就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。它试图通过将直线方程与该数据拟合来表示自变量(x)和数值结果(y)。然后就可以用这条直线来预测未来的值!
这种算法最常用的技术是最小二乘法(Least of squares)。这个方法计算出最佳拟合线,以使得与直线上的每个数据点垂直距离最小。总距离是所有数据点的垂直距离(绿线)的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。
在这里插入图片描述
线性回归
在这里插入图片描述

2、逻辑回归

逻辑回归(Logistic regression)与线性回归类似,但逻辑回归是用于输出为二进制的情况(即,当结果只能有两个可能的值)。对最终输出的与预测是一个非线性的S型函数,称为logistic function,g()
这个逻辑函数将中间结果映射到结果变量Y,其值范围是从0到1.然后,这些值可以解释为Y出现的概率。S型逻辑函数的性质使得逻辑回归更适合用于分类任务。在这里插入图片描述
逻辑回归曲线图,显示了通过考试的概率与学习时间的关系

3、决策树

决策树(Decision Trees)可用于回归和分类任务。
在这一算法中,训练模型通过学习树表示(Tree representation)的决策规则来学习预测目标变量的值。树是由具有相应属性的节点组成的。
在每个节点上,我们根据可用的特征询问有关数据的问题,左右分支代表可能的答案。最终节点(即叶节点)对应于一个预测值。每个特征的重要性是通过自顶向下方法确定的,节点越高,其属性就越重要。
在这里插入图片描述
玩还是不玩,这是一个问题。

4、朴素贝叶斯

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理。它测量每个类的概率,每个类的条件概率给出x的值。这个算法用于分类问题,得到一个二进制“是”/“非”的结果,如下图所示。
在这里插入图片描述
其中,P(Y|X)代表X事件发生的条件下,Y事件发生的概率;P(X)和P(Y)分别代表了事件X和事件Y发生的概率;P(X|Y)代表了Y事件发生的条件下,X事件发生的概率。
朴素贝叶斯分类器是一种流行的统计技术,可用于过滤垃圾邮件

5、支持向量机(SVM)

支持向量机(Support Vector Machine, SVM)是一种用于分类问题的监督算法。支持向量机试图在数据点之间绘制两条线,它们之间边距最大。为此,我们将数据项绘制为n维空间中的点,其中n是输入特征的数量,我们生活在3维空间,所以大多数想象n=3。在此基础上,支持向量机找到一个最优边界,简称超平面(Hyperplane),它通过类标签将可能的输出进行最佳分离。二维数据用线分离,三维数据用平面分离,当n超过3时候,我们就无法想象。
超平面与最近的类点之间的距离称为边距。最优超平面具有最大边界,可以对点进行分类,从而使最近的数据点与这两个点间的距离最大化,使得类类间的距离最小,类间的距离最大。
在这里插入图片描述

如图所示,H1没有将两个类分开。但是H2将两个类分开。但是H2只有很小的边距,而H3以最大的边距将它们分开了,使得类类间的距离最小,类间的距离最大。

6、K-最近邻算法(KNN)

这个可以参考我之前的博客,讲的很详细啊

7、K-均值

K均值(K-means)是通过对数据集进行分类来聚类的。例如这个算法可以根据购买历史将用户进行分组,它在数据集中找到K个聚类。K-均值用于无监督学习,因此,我们只需要使用训练数据X,以及我们想要识别的聚类数量K。
该算法根据每个数据点的特征,将每个数据点迭代地分配给K个组中的一个组,它为每个K-聚类(称为质心)的聚类中。这个过程一直持续到质心停止变化为止。
在这里插入图片描述

8、随机森林

随机森林(Random Forest)是一种非常流行的集成机器学习算法。这个算法的基本思想是,许多人的意见要比一个人的意见更加准确,好而不同。在随机森林中,我们使用决策树集成,一棵棵树,最后就集成了一片森林。
为了对新对象进行分类,我们从每个决策树中进行投票,并结合结果,然后根据多数投票最终做出决定。
在这里插入图片描述
(a)在训练过程中,每个决策树都是基于训练集的引导样本来构建的。
(b)在分类过程中,输入实例的决定是根据多数投票做出的。

9、降维

由于我们今天能够捕获的数据量信息太大,维度空间也越来越大,机器学习问题变得更加复杂。这个就意味着训练极其缓慢,而且很难找到一个好的解决方案。这个问题,通常被称为“维数灾难”(Curse of dimensionality)。
降维(Dimensionality reduction)试图在不丢失最重要信息的情况下,通过将特定的特征组合成高层次的特征来解决这个问题。主成分分析是最流行的降维技术。
主成分分析是通过将数据集压缩到低维线或超平面/子空间来降低数据集的维数。这尽可能地保留了原始数据的显著特征。
在这里插入图片描述
如图所示,可以通过将所有数据点近似到一条直线上来实现降维。

10、人工神经网络(ANN)

人工神经网络(Artificial Neural Networks, ANN)可以处理大型复杂的机器学习任务。神经网络本质上是一组带有权值的边和节点组成的相互连接的层,称为神经元。在输入层和输出层之间,我们可以插入多个隐藏层。人工神经网络使用了两个隐藏层。除此之外,还需要处理深度学习的问题。
人工神经网络的工作原理与大脑的结构类似。一组神经元被赋予一个随机权重,以确定神经元如何处理输入数据。通过对输入数据训练神经网络来学习输入和输出之间的关系。在训练阶段,系统可以访问正确的答案。如果网络不能准确识别输入,系统就会调整权重。经过充分的训练后,它将始终如一地识别出正确的模式。
在这里插入图片描述

每个圆形节点表示一个人工神经元,箭头表示从一个人工神经元的输出到另一个人工神经元的输入的连接。
这就是我对于机器学习的十种比较流行的算法的总结,大家也可以自己尝试去深入了解一下,希望对大家的学习有帮助啊。
照例给大家推荐一个b站视频:YOLOV4和YOLOV5教程 BV1pv411V7kR

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器学习(Machine Learning, ML)是一应用人工智能(AI)领域的科学技术,它使得计算机系统能够从数据中自动学习和改进,而无需显式编程。在机器学习的过程中,算法会通过识别和挖掘数据中的模式来构建一个模型,这个模型可以用于做出预测、分类、聚类、回归以及其他复杂的数据驱动决策。 机器学习的主要类型包括监督学习、无监督学习和半监督学习。在监督学习中,算法根据已知标签的数据集进行训练,以便对未知数据进行预测,例如分类任务(判断邮件是否为垃圾邮件)或回归任务(预测房价)。无监督学习则是在没有标签的情况下,仅凭数据本身的特征发现其中隐藏的结构或模式,如聚类分析(将用户分组到不同的客户细分群体中)。半监督学习介于两者之间,它部分数据有标签,部分数据无标签。 机器学习算法涵盖众多方法,包括但不限于逻辑回归、决策树、随机森林、支持向量机、K近邻算法、神经网络以及深度学习技术等。随着计算能力的增强和大数据时代的到来,机器学习已经在诸多领域展现出强大的功能,如图像识别、语音识别、自然语言处理、推荐系统、金融风控、医疗诊断等。 此外,机器学习的发展与统计学习、逼近论、凸优化、概率论等诸多数学和计算机科学领域紧密相关,且不断地推动着新算法和理论框架的创新与发展。同时,现代机器学习尤其是深度学习模型的内部工作机制有时难以完全解释,因此常被称为“黑箱”决策过程,这也是当前研究中的一个重要挑战。
以下是一个简单的django视图函数,它基于用户的书单推荐可能喜欢的书籍: ```python from django.shortcuts import render from .models import Book, UserBook def recommended_books(request): # 获取当前用户的书单 user_books = UserBook.objects.filter(user=request.user).values_list('book_id', flat=True) # 获取其他用户也阅读过的书籍 other_users_books = UserBook.objects.exclude(user=request.user).values_list('book_id', flat=True) # 从其他用户的书单中获取与当前用户共同阅读的书籍 common_books = Book.objects.filter(id__in=user_books, id__in=other_users_books) # 对共同阅读的书籍按照出现频率进行排序 recommended_books = common_books.annotate(num_users=Count('userbook')).order_by('-num_users') return render(request, 'recommended_books.html', {'books': recommended_books}) ``` 这个视图函数做了以下几件事情: 1. 获取当前用户的书单。 2. 获取其他用户也阅读过的书籍。 3. 从其他用户的书单中获取与当前用户共同阅读的书籍。 4. 对共同阅读的书籍按照出现频率进行排序。 5. 将推荐的书籍传递给模板渲染。 视图函数中使用了两个模型:`Book`和`UserBook`。 `Book`模型表示一本书,有以下字段: ```python class Book(models.Model): title = models.CharField(max_length=200) author = models.CharField(max_length=200) description = models.TextField() ``` `UserBook`模型表示一个用户阅读了一本书,有以下字段: ```python class UserBook(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) book = models.ForeignKey(Book, on_delete=models.CASCADE) ``` `UserBook`模型中的`user`字段是一个外键,指向`User`模型,表示这个书籍是哪个用户阅读的。`book`字段是一个外键,指向`Book`模型,表示这个用户阅读了哪本书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值