Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
聚类
1、聚类的评估?
如何评估两个聚类算法的好坏,可以分成三个子任务:
- 估计聚类趋势:检测数据分布中是否存非随机的簇结构,通常用霍普金斯统计量来判断数据在空间上的随机性。
- 判定数据簇数:手肘法和Gap Statistic来判定数据簇数
- 测定聚类质量:轮廓系数(评价聚类结果的质量)、均方根标准差(衡量聚类结果的同质性)、R方(衡量聚类的差异性)。
2、Kmean的K值如何选取?
K越小,模型容易过拟合。
K越大,
3、如何优化Kmeans?
优化k-means的建议:
1、减少聚类的数目K。因为,每个样本都要跟类中心计算距离。
2、减少样本的特征维度。比如说,通过PCA等进行降维。
3、考察其他的聚类算法,通过选取toy数据,去测试不同聚类算法的性能。
4、hadoop集群,K-means算法是很容易进行并行计算的。
4、欧式距离和曼哈顿距离的区别?
欧式距离常用于各个向量度量较统一的情况。
曼哈顿距离是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和,常用于城市坐标,依赖于坐标系。
深度学习——基础概念
1、常见的激活函数有哪些?优缺点?
- sigmoid:sigmoid函数,在反向传播求误差梯度时,求导涉及除法和指数运算,计算量大。且当函数接近饱和区时,变换太缓慢,导数趋于0,容易饱和,发生梯度消失现象,从而无法完成深层网络的训练。
- relu:会使部分神经元的输出为0,使得网络有稀疏性,并减少了参数的相互依存关系,缓解了过拟合问题的发生。缺点:神经元等于0的地方,相当于神经元死亡,不提供信息。
- tanh:tanh是sigmoid的变形,也存在饱和现象,解决了原点对称问题,速度比sigmoid快。
- leaky Relu:relu的变形,解决了神经元死亡的问题。
2、为什么引入非线性激励函数?
深度学习的前提是神经网络的隐藏加上了非线性激活函数,提升了模型的非线性表达能力,使得神经网络可以逼近任意复杂函数。
3、如何解决梯度消失和梯度爆炸?
梯度消失:根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重都小于1的话,经过多次传播之后,梯度会趋于0.
梯度爆炸:根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重都大于1的话,经过多次传播之后,梯度会趋于无穷。
解决方法有:
预训练加微调,使用不同的激活函数,batch norm,梯度剪切,权重正则(加黑的是梯度爆炸的方法) 等
4、防止过拟合的方法?
- Dropout
- 加L1/L2正则化
- Batch Normalization
- 早停
- 数据增强