CHAPER 1
1.1 mytest1.py中
plt.scatter(dataMat[0],dataMat[1],c='red',marker='o')
会有错误,是因为scatter函数对输入数据有要求,需要时一维的数组,dataMat[0]是矩阵类型,改为
plt.scatter(array(dataMat[0]),array(dataMat[1]),c='red',marker='o')
1.2 矢量化编程
个人认为就是代码实现的便利性,传统语言针对标量,矩阵的运算本来是通过数组和循环进行,现在可以直接按照公式进行。
其中最主要的库就是NumPy,初始化如下:
import munpy as np
my_zeros = np.zeros([3,5])
my_ones = np.ones([3,5])
my_rand = np.random.rand(3,4)
me_eye = np.eye(3)
计算:
加减:+-
数乘:*
求所有元素和:sum()
对应每个元素乘积:multiply(,)
幂:power(,)
转置:transpose()
行列数:[m,n]=shape()
按行取:my_matrix[0]
按列取:my_matrix.T[0]
1.3 数学基础
相似性的度量——向量的距离
距离公式:
闵可夫斯基距离(Minkowski Distance),其实是一组距离的定义: p=1,曼哈顿距离;p=2,欧氏距离;p趋于无穷,切比雪夫距离。
——切比雪夫距离。
夹角余弦——衡量两个向量方向的差异。
汉明距离——两个等长字符串不等的个数。
杰卡德相似系数——两个集合交集在并集中的比例,衡量两个集合的相似度,对应有杰卡德距离,1减相似系数,1-J
贝叶斯公式P(B|A)=P(A|B)P(B)/P(A).
向量×矩阵:线性空间转换
矩阵乘法:向量组空间变换