机器学习基础入门:从矩阵运算到基础算法构建
立即解锁
发布时间: 2025-08-30 01:10:51 阅读量: 10 订阅数: 17 AIGC 

# 机器学习基础:从矩阵运算到算法构建
## 1. 基本矩阵运算
### 1.1 标量运算
标量运算涉及向量(或矩阵)与标量的操作。对矩阵进行标量运算时,只需将标量应用于矩阵中的每个元素。在 Python 中,示例代码如下:
```python
import numpy as np
vector = np.array([[1,2], [1,2]])
new_vector = vector + 2
```
### 1.2 元素级运算
在元素级运算中,位置至关重要。对应位置的值会组合成新的值。以矩阵或向量的加法和减法为例,在 Python 中的操作如下:
```python
vector_one = np.array([[1,2],[3,4]])
vector_two = np.array([[5,6],[7,8]])
# 加法
print(vector_one + vector_two)
# 减法
print(vector_one - vector_two)
```
输出结果分别为:
```
array([[ 6, 8],
[10, 12]])
array([[-4, -4],
[-4, -4]])
```
### 1.3 向量乘法
向量乘法有两种形式:点积和哈达玛积。
- **点积**:是一种特殊的乘法,与几何理论相关,输出为标量。在机器学习中,点积是核心操作。例如,在简单的图像分类问题中,通过计算点积判断图像是猫还是狗。在 Python 中,可使用 `numpy` 的 `np.dot()` 函数计算点积:
```python
vector_one = np.array([1,2,3])
vector_two = np.array([2,3,4])
print(np.dot(vector_one,vector_two)) # 输出 20
```
- **哈达玛积**:输出为向量,是元素级的乘法。在 Python 中,使用 `*` 运算符即可实现:
```python
vector_one = np.array([1,2,3])
vector_two = np.array([2,3,4])
print(vector_one * vector_two) # 输出 array([ 2, 6, 12])
```
## 2. 基本统计与概率论
### 2.1 概率的定义
概率是对不确定场景进行建模的数学方法,是使人工智能算法具有智能的基础。概率可定义为频率与样本大小的比值。简单来说,概率是对不确定性的数学研究。
### 2.2 概率空间
概率空间用于衡量某些事件发生的概率,由以下三个特征定义:
1. **样本空间**:表示可能的结果或情况。
2. **定义的事件集**:例如两次信用卡欺诈交易。
3. **每个事件的概率度量**。
在概率理论中,独立性的概念至关重要。独立是指一个随机变量的值不依赖于另一个随机变量的值。在深度学习中,非独立特征可能会相互影响,降低模型的预测能力。
在统计中,关于某个事件的数据集合称为样本,样本来自于代表该事件所有已知信息的总体。采样时,应采用随机采样以减少偏差,否则基于样本的统计分析和建模也会存在偏差。
### 2.3 概率分布
概率分布描述了随机变量取某个值的可能性。通过将直方图中的频率除以样本总数进行归一化处理,可得到概率分布。概率分布主要有两种形式:
- **概率质量函数(PMFs)**:用于离散变量,随机变量只能取有限个值。
- **概率密度函数(PDFs)**:用于连续变量,随机变量可以取无限个值。例如,标准正态分布或高斯分布的概率密度函数。
### 2.4 条件概率和联合概率
- **条件概率**:表示在事件 y 发生的条件下,事件 x 发生的概率,记为 P(A|B)。
- **联合概率**:表示两个事件同时发生的概率。
### 2.5 联合概率的链式法则
链式法则是评估两个变量联合概率的技术,在人工智能领域,联合概率是生成模型的基础。
### 2.6 贝叶斯法则
贝叶斯法则允许通过反转事件条件来计算条件概率。以一个简单的疾病检测问题为例,如下表所示:
| | 疾病 (1%) | 无疾病 (99%) |
| --- | --- | --- |
| 检测阳性 | 80% | 9.6% |
| 检测阴性 | 20% | 90.4% |
若检测结果为阳性,可使用贝叶斯公式计算实际患病的概率:
```python
p_diseasePos = 0.8 # 检测阳性时患病的概率
p_diseaseNeg = 0.2 # 检测阴性时患病的概率
p_noPos = 0.096
p_noNeg = 0.904
p_FalsePos = (0.80 * 0.01) + (0.096 * 0.99)
p_disease_given_pos = (0.80 * 0.01) / p_FalsePos
print(p_disease_given_pos) # 输出实际患病的概率,约为 7.8%
```
### 2.7 乘法运算总结
在进行乘法运算时,运算类型很重要。哈达玛积用于两个相同大小的向量或矩阵相乘,输出为相同大小的向量或矩阵;点积用于需要输出单个数值的情况,在机器学习和深度学习中,点积是神经网络基本操作的核心。
概率分布及其计算依赖于贝叶斯思维。贝叶斯法则启发了贝叶斯统计
0
0
复制全文
相关推荐







