机器学习核心概念(二)-特征处理与多回归元线性
·
多类特征+多元线性回归
定义
多元线性回归定义 多元线性回归是线性回归的扩展,它设计两个或更多自变量(特征)和一个因变量(目标变量)之间的关系建模 ,是一种预测连续变量的模型,用多个特征(自变量)预测一个目标变量(因变量)。
多类特征定义 多类特征指的是哪些取值是离散类别的特征,不是连续数值。这些特征不能直接输入大多数的机器学习模型(尤其是线性模型或神经网络),因为模型只能处理数字输入,所以需要经过处理。
多类特征往往需要经过编码,才能作为多远才能行回归的输入,多元线性回归可以同时处理连续特征和经过编码后的类别特征,在实际机器学习任务中,预处理多类特征是构建可靠回归模型的关键步骤。
向量化

向量化使代码更加简洁,更容易变细,也更容易让自己活着别人阅读,使运行速度更快
定义 向量化是把数据表示成向量或者矩阵的形式,以便计算机能利用线性代数进行高效运算。向量化就是把多个标量组织称一个数据结构,用矩阵或向量一次性处理。

标量计算和向量计算对比
| 项目 | 标量计算 | 向量计算 |
| 定义 | 对单个数进行逐个运算 | 多个数据打包成向量或者矩阵,一次性进行批量计算 |
| 操作对象 | 单个数值 | 一组数 |
| 思维方式 | 用循环处理每个样本或特征 | 用矩阵代数一次性计算所有的样本 |
| 计算效率 | 较慢(依赖循环) | 极快(底层并行计算,利用CPU/GPU进行优化) |
| 表达形式 | 程序代码中出现多层for循环 | 使用矩阵乘法或广播机制 |
| 可读性和简洁性 | 代码繁琐,难以推导公式 | 代码简洁,易于数学分析 |
| 机器学习中的应用 | 理论理解或小样本计算 | 实际训练模型,深度学习等 |
举例说明计算对比
1.假设有两个特征: _ 房屋面积
_卧室数量
用线性模型预测房价:
2.NumPy随机生成100000个样本
import npmpy as np
import time
#生成随机数据
np,random,seed(0)
m=100000
x1=np.random.rand(m)
x2=np.random.rand(m)
#真实权重
w1,w2,w3=3,2,4
3.计算标量(逐个样本for循环)
start=time.time()
y_scalar=[]
for i in range(m):
y_i=w0+w1*x1[i]+w2*x2[i]
y_scalar.append(y_i)
end=yime.time()
print("计算标量耗时:",round(round()end-start,4),"秒")
- 使用python循环,每次只处理一个样本
- 可读性高,但是运行很慢(尤其是样本数大的时候)
4.向量计算(NumPy一次性运算)
start=time.time()
y_vectorized=w0+w1*x1+w2*x2
end=time.time()
print("向量计算耗时:",round(end-start,4),"秒")
- 无循环,直接利用NumPy的底层c运算
- 计算效率极高
5. 结果比较
标量计算耗时:0.65s 向量计算耗时:0.002s
向量化实现多元线性回归的梯度下降

单个和多个特征时实现梯度下降的对比区别
在多个特征时候实现梯度下降是是向量形式

- 在多元线性回归中,每个特征
都对应一个权重
。
- 梯度下降时,我们要同时更新所有的权重
,每个权重的更新由该特征在样本上的误差贡献决定
- 也就是说,对每个参数
,我们综合考虑所有样本的
与误差来一起更新它。
- b的更新也是考虑所有的样本的误差,只是他不对应任何实际特征,而是统一控制整体的偏移
更多推荐
所有评论(0)