人工智能面试总结(2)——分类和聚类

人工智能面试总结(2)——分类和聚类

该面经总结了春招/秋招各厂高频面试八股,除开围绕简历扣项目细节,公司最喜欢问的还是这些经典算法中涉及的知识点。

人工智能面试-题目指路

(二)分类和聚类

说说常用的分类算法,以及各自的优缺点?

常用的分类算法包括决策树、朴素贝叶斯、逻辑回归、支持向量机和神经网络等。它们的优缺点如下:

  • 决策树:易于理解和实现,能够处理离散和连续特征,但容易过拟合,对噪声敏感。
  • 朴素贝叶斯:基于概率模型,对缺失数据能够处理,对数据分布不敏感,但假设特征之间相互独立,可能影响准确率。
  • 逻辑回归:简单快速,可处理大量特征,输出结果易于理解,但不能处理非线性关系,容易欠拟合。
  • 支持向量机:在高维空间中有效,可以处理非线性问题,泛化能力强,但对噪声和缺失数据敏感,参数调整较困难。
  • 神经网络:能够处理非线性问题,适用于大规模数据集,但容易过拟合,训练时间较长,难以解释结果。

说说为什么正确率有时不能有效评估分类算法?

分类问题中,有时会遇到样本不平衡或者某些类别的样本数量较少的情况,这时使用正确率(accuracy)评估算法的性能可能会出现问题。因为算法可能会将样本全部预测为数量较多的类别,而准确率会高但实际上分类效果很差。此外,正确率无法表达算法的预测能力是否均衡,对于不同的类别,分类器的性能可能有很大的差异。

说说什么样的分类器最好?

没有最好的分类器,只有最适合的分类器。选择合适的分类器需要考虑数据特征、问题类型、算法的优缺点等多个因素。在实际应用中,需要根据具体问题和数据进行选择和调整。

说说聚类算法有哪些衡量标准?

聚类算法的衡量标准包括SSE(Sum of Squared Errors)、轮廓系数(Silhouette Coefficient)、DB指数(Davies-Bouldin Index)和CH指数(Calinski-Harabasz Index)等。

SSE反映了聚类结果的紧密程度,轮廓系数评价聚类效果的好坏,

DB指数和CH指数分别用于判断聚类结果的紧密性和分离性,评价聚类效果的稳定性和可靠性

(选看)各聚类算法性能比较汇总

各聚类算法的性能比较是一个比较复杂的问题,因为它取决于许多因素,例如数据集的大小和结构、聚类算法的实现方式以及所选的距离度量等。以下是一些聚类算法的性能比较:

  1. K-Means聚类算法:
    • 优点:计算效率高、易于实现和解释、适用于大数据集
    • 缺点:对于高维和非球形的数据集表现不佳
  2. 层次聚类算法:
    • 优点:不需要事先指定簇数、能够生成层次化结构、对于小数据集表现不错
    • 缺点:计算复杂度高、不适用于大数据集
  3. 密度聚类算法:
    • 优点:对于非球形和噪声数据的聚类效果好
    • 缺点:需要事先指定邻域参数、对于高维数据的表现不佳
  4. 基于模型的聚类算法:
    • 优点:对于复杂数据集的表现较好、能够识别数据集中的潜在模型
    • 缺点:计算复杂度高、对于大数据集表现不佳
  5. 谱聚类算法:
    • 优点:能够识别非球形和非凸形状的簇、对于高维数据集表现较好
    • 缺点:计算复杂度高、需要事先选择近邻的数量
  6. 均值漂移聚类算法:
    • 优点:不需要指定簇数、对于非球形数据的表现较好
    • 缺点:计算复杂度高、对于大数据集表现不佳
  7. DBSCAN聚类算法:
    • 优点:能够处理噪声数据和非球形数据、对于数据密度不均匀的数据集表现较好
    • 缺点:需要事先指定邻域参数、对于高维数据的表现不佳

说说什么是聚类,你知道哪些聚类算法?

聚类是一种无监督学习方法,旨在将数据样本分成若干个不同的群体,每个群体中的数据点之间具有一定的相似性,而不同群体之间的数据点则有明显的差异性。

常见的聚类算法有:

  1. K-Means聚类算法
  2. 层次聚类算法
  3. 密度聚类算法
  4. 基于模型的聚类算法
  5. 谱聚类算法
  6. 均值漂移聚类算法
  7. DBSCAN聚类算法
  8. 二分K-Means聚类算法
  9. 高斯混合聚类算法
  10. 局部性敏感哈希(LSH)聚类算法

说说K-Means聚类算法流程?

K-Means聚类算法的流程如下:

  • 随机选择k个聚类中心。
  • 计算每个样本到每个聚类中心的距离,并将其归为距离最近的聚类。
  • 对于每个聚类,重新计算其聚类中心。
  • 重复以上步骤直到聚类中心不再改变或达到最大迭代次数。

说说K-Means聚类算法如何调优?

K-Means聚类算法的调优包括以下几个方面:

  • 选择合适的聚类个数k。
  • 选择合适的距离度量方式。
  • 选择合适的初始聚类中心点。
  • 标准化或归一化输入数据。

说说K-Means聚类算法如何选择初始点?

  • 随机选择k个样本作为初始聚类中心点。
  • 通过层次聚类等其他聚类算法得到初始聚类中心点。
  • 使用K-Means++算法进行聚类中心初始化,该算法可以得到更优的聚类结果。

说说K-Means聚类聚的是特征还是样本?

K-Means聚类算法聚的是样本,即根据每个样本之间的相似度将它们划分到不同的聚类中。

说说K-Means聚类的特征距离是如何计算的?

K-Means聚类算法可以使用不同的距离度量方式,如欧式距离、曼哈顿距离、闵可夫斯基距离等。通常使用欧式距离作为默认距离度量方式。

说说聚类与分类的区别?

聚类与分类的区别在于聚类是无监督学习,没有标签信息,目的是将相似的样本划分到同一个聚类中;而分类是有监督学习,有标签信息,目的是训练模型将不同类别的样本分开。

手撕K-Means聚类

import numpy as np

class KMeans:
    def __init__(self, n_clusters=8, max_iter=300, random_state=0):
        self.n_clusters = n_clusters
        self.max_iter = max_iter
        self.random_state = random_state
    
    def fit(self, X):
        # 随机初始化聚类中心
        rng = np.random.RandomState(self.random_state)
        i = rng.permutation(X.shape[0])[:self.n_clusters]
        self.cluster_centers_ = X[i]

        for _ in range(self.max_iter):
            # 分配样本到最近的聚类中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值