Python机器学习-知识点汇总
作者头像
  • VR独立观察
  • 2020-04-04 16:34:57 14

1. 哪些数据集不适合用于深度学习?

在某些情况下,数据集可能不适合深度学习的应用。以下是两个主要因素:

  • 数据集规模较小:当数据样本数量不足时,深度学习相较于其他机器学习算法并没有显著的优势。
  • 数据集缺乏局部相关性:深度学习在图像识别、语音处理和自然语言处理等领域表现较好,因为这些领域中数据的局部特征非常重要。例如,图像中的像素组成物体,语音信号中的音位组合成单词,文本中的单词组合成句子。如果数据集不具备这样的局部相关性,那么使用深度学习算法处理就不太合适。例如,预测一个人的健康状况,涉及的参数如年龄、职业、收入和家庭状况等,这些参数即使被打乱也不会影响预测结果。

2. Softmax函数的数学推导及Python实现

Softmax函数用于多分类问题的最后一层,将神经元的输入映射到(0, 1)区间内,可以视为概率,从而进行多分类。

Softmax函数

公式如下: [ text{softmax}(x)i = frac{exp(xi)}{sum{j}exp(xj)} ]

简化版公式: [ text{softmax}(x)i = frac{exp(xi - max(x))}{sum{j}exp(xj - max(x))} ]

Python代码实现: ```python import numpy as np

def softmax(x): rowmax = x.max() x = x - rowmax xexp = np.exp(x) xsum = np.sum(xexp) s = xexp / x_sum return s

简化版本

def softmaxsimple(x): ex = np.exp(x - np.max(x)) return ex / ex.sum()

使用TensorFlow实现

import tensorflow as tf

def softmaxtensorflow(x): with tf.Session() as sess: tfs2 = tf.nn.softmax(x) s2 = sess.run(tf_s2) return s2

比较两个方法

scores = [3.0, 1.0, 0.2] print(softmax(scores)) print(softmax_simple(scores)) ```

3. 欧氏距离和曼哈顿距离

欧氏距离

欧氏距离(又称欧几里得距离)是利用勾股定理计算两点间的直线距离,或在m维空间中计算两点间的实际距离。

公式如下: - 二维空间:( d = sqrt{(x1 - x2)^2 + (y1 - y2)^2} ) - 三维空间:( d = sqrt{(x1 - x2)^2 + (y1 - y2)^2 + (z1 - z2)^2} ) - n维空间:( d = sqrt{sum{i=1}^{n}(xi - y_i)^2} )

曼哈顿距离

曼哈顿距离是指两个点在标准坐标系上沿轴线的绝对轴距之和。

公式如下: - 平面:( d(i,j) = |X1 - X2| + |Y1 - Y2| )

Python代码实现: ```python import numpy as np

def manhattan_distance(vec1, vec2): return np.sum(np.fabs(vec1 - vec2))

def euclidean_distance(vec1, vec2): distance = np.sqrt(np.sum(np.square(vec1 - vec2))) return distance

示例

vec1 = np.array([1, 2]) vec2 = np.array([4, 6]) print(manhattandistance(vec1, vec2)) print(euclideandistance(vec1, vec2)) ```

4. 什么是数据埋点?

数据埋点是指在网页或应用程序中插入代码,用于收集用户行为数据。它可以分为两类: - 页面统计:记录页面访问次数和用户停留时间等。 - 行为统计:记录用户在界面上的操作,如按钮点击次数等。

5. 机器学习项目流程简介

5.1 抽象成数学问题

明确问题是机器学习的第一步。需要理解可以获取哪些数据,目标是分类、回归还是聚类。

5.2 获取数据

数据决定了机器学习结果的下限,数据的质量和代表性至关重要。数据量也需要考虑,如果数据量过大,可以考虑分布式计算。

5.3 特征预处理与特征选择

数据预处理包括数据清洗、归一化、处理缺失值等。特征选择是机器学习的重要环节,需要通过相关系数、卡方检验等方法筛选出关键特征。

5.4 训练模型与调优

使用算法进行训练,通过调整超参数优化模型性能。这需要对算法原理有深入的理解。

5.5 模型诊断

评估模型是否过拟合或欠拟合,可以通过交叉验证等方法诊断模型。通过误差分析找出问题所在,并进行调优。

5.6 模型融合

模型融合可以提升模型性能。常见的方法包括特征清洗、不同的采样方式等。

5.7 上线运行

上线后需要监控模型的表现,包括准确性、运行速度、资源消耗等。

6. 全连接神经网络结构

全连接神经网络是一种每个神经元都与下一层的所有神经元相连的网络结构。输入层和输出层之间的层被称为隐藏层。

7. 全连接神经网络的前向传播

前向传播是指输入数据通过每一层的加权求和和激活函数,最终得到输出。矩阵形式可以简化计算。

8. 随机梯度下降法

梯度下降法是寻找损失函数最小值的一种方法。随机梯度下降(SGD)是梯度下降的一种变体,每次迭代只使用一个或少量样本进行参数更新。

9. 逻辑回归的原理和损失函数推导

逻辑回归是一种分类模型,用于解决二分类问题。其损失函数通常使用对数损失(log loss)。

10. 为什么要在机器学习中对数据进行归一化?

归一化可以加速梯度下降的收敛速度,提高模型的精度。常见方法包括线性归一化、标准差标准化和非线性归一化。

11. Batch的含义

Batch是深度学习中的一个重要概念,指的是在每次参数更新时使用的数据样本数。常见的方法有批量梯度下降、随机梯度下降和小批量梯度下降。

12. 机器学习中的过拟合和欠拟合

12.1 过拟合

过拟合是指模型在训练集上的表现很好,但在测试集上的表现较差。

12.2 避免过拟合的方法

  • 重采样Bootstrap
  • 使用L1或L2正则化
  • 决策树剪枝
  • 交叉验证

12.3 欠拟合

欠拟合是指模型对训练数据的拟合程度不高。

12.4 避免欠拟合的方法

  • 增加样本数量
  • 增加样本特征数量
  • 扩展特征维度

13. 朴素贝叶斯算法为什么如此“朴素”?

朴素贝叶斯算法假设所有特征在数据集中作用相同且相互独立。尽管这个假设在现实中不太成立,但朴素贝叶斯算法依然简单高效。

14. 反向传播算法的推导及其Python实现

反向传播算法用于调整神经网络的参数,以最小化损失函数。通过逐层计算参数的偏导数,逐步调整权重和偏置,从而优化模型。下面是反向传播算法的Python实现代码。

以上是对原文内容的改写,确保了内容的准确性和完整性,同时提高了文章的紧凑性和可读性。

    本文来源:图灵汇
责任编辑: : VR独立观察
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
知识点汇总机器Python学习
    下一篇