本博客是作为自己在学习机器学习的过程中的一些知识点的记录,因此比较零碎。主要是对知识点进行记录,以便后续复习。
一、代码段一
代码段如下
import numpy as np
vec1=np.array([1,2,3,])
vec2=np.array([4,5,6])
#欧式距离
assert np.linalg.norm(vec1-vec2)==np.sqrt(np.sum(np.square(vec1-vec2)))
知识点一、np.linalg.norm(求范数)
1、linalg=linear(线性)+algebra(代数),norm则表示范数。
①x: 表示矩阵(也可以是一维)
②ord:范数类型
向量的范数:
矩阵的范数:
ord=1:列和的最大值
ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算术平方根
ord=∞:行和的最大值
③axis:处理类型
axis=1表示按行向量处理,求多个行向量的范数
axis=0表示按列向量处理,求多个列向量的范数
axis=None表示矩阵范数。
④keepding:是否保持矩阵的二维特性
True表示保持矩阵的二维特性,False相反
以上面的代码演示一下这三种范数的类型
二、代码段二
下面代码的目的式将
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets #dataSets: sklearn 的示例数据集
#加载数据集
scikit_iris=datasets.load_iris()
#转换成pandas的DataFrame数据格式,方便观察
iris=pd.DataFrame(data=np.c_[scikit_iris['data'],scikit_iris['target']],columns=np.append(scikit_iris.feature_names,['y']))
#查看前两行数据行
iris.head(2)
#查看数据的缺失情况。
iris.isnull().sum()
使用Juypter,可以清晰的显示出数据。
1.加载的数据集。
scikit_iris是加载后的数据。从下面的显示可以看出(数据太长,分开截图的),scikit_iris的数据结构是字典。它的key包括data,target,target_names。键的值存储在array中。
下列代码式将上面的scikit_iris数据从字典形式转换成pandas 中的DataFrame数据结构,转换后的数据结构如下图所示(部分截图):
iris=pd.DataFrame(data=np.c_[scikit_iris['data'],scikit_iris['target']],columns=np.append(scikit_iris.
涉及的函数用法
np.c_的用法
np.c_是按列连接两个矩阵,就是把两矩阵左右相加,要求行数相等
np.c_的详细用法:https://blog.csdn.net/luguojiu/article/details/102894327