加推数据特征工程实战
在机器学习或使用之前对数据进行清洗、标准化、降维等,是技术人员必不可少的技能?
从需求说起
- 系统用户有大量的频度指标,我们希望对用户画像进行分类和打标。(分类与聚类)?
- 产品运营有大量的指标需要分析,产生有价值的报表。(聚类)
- 销售膜拜、电话、大客,还是团队作战,哪项行为更符合我们的产品?(分类)?
数据科学的第一步:特征工程
- 特征工程,说白了就是对待分析的数据进行预处理、特征选择、降维等操作。?
基础知识(主要是矩阵操作)
首先随便用JS写一套 矩阵操作的函数集(编写难度很低,看着公式,中级程序猿可以轻易完成300行代码左右)?
线代基础网上很多,我们用到的也就是这些基础的组合,上一篇卷积操作会相对难一些。
- 复制矩阵(浅copy)
- 矩阵转置(下面会用到)
matrix.transpose = function (arr) {
let result = new Array(arr[0].length)
for (let i = 0; i 0].length; i++) {
result[i] = new Array(arr.length)
for (let j = 0; j result[i][j] = arr[j][i]
}
}
return result
}
- 加法
- 减法
- 比例
- 叉乘
- 点乘
- 矩阵行列式(det)
- 全 0 矩阵(zero)
- 单位矩阵(I)
- 高斯约旦消元法
- 求逆矩阵(inv)
封装到Sky核心库的 $.math.mat 下
有了这几个基础函数我们就可以完(wei)成(suo)功(yu)能(wei)?
矩阵操作就是线性转换,大部分的线性变化都会改变向量的方向