机器学习(K-近邻算法)Python的基础知识
2017-06-28 15:39
363 查看
0x000 算法基础知识前言
在看机器学习实战pytho实现的时候,有些代码看不懂,特此总结一下,下面分别介绍。0x0001 K-近邻算法算法Python的Numpy库基础知识
numpy中的eye
numpy.eye(N,M=None, k=0, dtype=<type 'float'>)
N,M参数:输出方阵(行数=列数)的规模,即行数或列数
K参数:默认情况下输出的是对角线全“1”,其余全“0”的方阵,如果k为正整数,则在右上方第k条对角线全“1”其余全“0”,k为负整数则在左下方第k条对角线全“1”其余全“0”。
创建一个eye.py文件代码如下:
from numpy import * e = eye(3) e1 = eye(3,k=1)
在shell里输入下面代码:
>>> e #e的结果 array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]]) >>> e1 #e1的结果 array([[ 0., 1., 0.], [ 0., 0., 1.], [ 0., 0., 0.]])
numpy中的shape
根据上面创建的对角矩阵的基础上,我们继续在shell中输入一下代码,并且附带结果:>>> e array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]]) >>> e.shape (3, 3) >>> e.shape[0] 3 >>> e.shape[1] 3
通过shape我们可以来查看一个矩阵的行列长度。而这组例子并不好分辨shape[0]和shape[1]分别代表的是什么,接下来我们在来创建一组例子:
a = array([[0,2,2], [3,1,0], [1,2,7], [9,5,9]])
shell输入:
>>> a array([[0, 2, 2], [3, 1, 0], [1, 2, 7], [9, 5, 9]]) >>> a.shape (4, 3) >>> a.shape[0] 4 >>> a.shape[1] 3
这样就很清晰的看出来shape[0]=4,shape[1]=3,也就是说shape[0]代表的是矩阵的行数,shape[1]代表的是列数。
numpy中的tile
tile(a,(m,n))的含义:将a数组复制n次暂时储存到一个临时变量里,在通过这个临时变量复制m次得到的结果就是tile(a,(m,n));更简单的来说其实m就是代表结果中矩阵最后的m行数,而n代表的是每行矩阵中复制a的次数
例如下面:
创建一个tile.py文件,代码如下:
from numpy import * a = [0,1,2]
shell中:
#将2复制一次 >>> b = tile(2,(2,1)) >>> b array([[2], [2]]) >>> c = tile(a,(3,2)) >>> c array([[0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 2]]) >>> d = tile(a,(4)) >>> d array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2])
numpy中的sum(axis=0,1)
创建一个sum.py的文件,代码如下:from numpy import * a = [0,1,2] b = [2,1,3]
分别输入以下代码:
#分别设置sum的后缀axis参数,为0,1,无 >>> c = sum([a,b],axis=0) >>> d = sum([a,b],axis=1) >>> e = sum([a,b]) #下面是IDLE输出的结果 >>> c array([2, 2, 5]) >>> d array([3, 6]) >>> e 9
通过上面的结果我们可以知道:
①当axis=0时,是把两个数组以列来相加,也就是[0+2,1+1,2+3]=[2,2,5]
②当axis=1时,是把两个数组以行来相加,也就是[0+1+2,2+1+3]=[3,6]
③当没有参数时,默认将所有相加:0+1+2+2+1+3=9
numpy中的argsort()
argsort(a, axis=-1, kind=’quicksort’, order=None)argsort函数返回的是数组值从小到大的索引值
One dimensional array:一维数组 >>> x = np.array([3, 1, 2]) >>> np.argsort(x) array([1, 2, 0]) Two-dimensional array:二维数组 >>> x = np.array([[0, 3], [2, 2]]) >>> x array([[0, 3], [2, 2]]) #按列排序 >>> np.argsort(x, axis=0) array([[0, 1], [1, 0]]) #按行排序 >>> np.argsort(x, axis=1) array([[0, 1], [0, 1]])
0x0002 K-近邻算法Python实现中的Python基础知识
幂的表示方法 ——– **
**:这个就代表了python中的幂次方,例如我们平时打字表示的时候2^2=4这个^在Python中的表示就是两个星号了。sorted()
sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序如果用sort函数对列表排序时会影响列表本身,而sorted不会。
例子:
>>> a = [1,2,1,4,3,5] >>> a.sort() >>> a [1, 1, 2, 3, 4, 5]
>>> a = [1,2,1,4,3,5] >>> sorted(a) [1, 1, 2, 3, 4, 5] >>> a [1, 2, 1, 4, 3, 5]
sorted(iterable,cmp,key,reverse)
参数:iterable可以是list或者iterator;
cmp是带两个参数的比较函数;
key 是带一个参数的函数;
reverse为False或者True,升序或者降序;
例:
#operator.py文件代码: from numpy import * import operator a = [3,1,9] #shell >>> b = operator.itemgetter(0) >>> b(a) 3 >>> b = operator.itemgetter(1) >>> b(a) 1 >>> b = operator.itemgetter(2) >>> b(a) 9
operator.itemgetter函数获取的不是值,而是定义了一个函数。
K-近邻算法基础总结
大概Python用到的基础知识就是这么多,大部分都是numpy下的知识点,先把基础知识掌握在开始机器学习day02的近邻算法总结相关文章推荐
- 【机器学习】K-近邻算法的Python实现
- Python语言实现机器学习的K-近邻算法
- 机器学习 & python k-近邻算法处理手写识别系统
- Python 机器学习 K-近邻算法
- 机器学习基础知识(一)机器学习常见算法分类汇总
- 机器学习实战—知识梳理—k-近邻算法
- 【机器学习实战-kNN(k-近邻)】python3实现-书本知识【1】
- 机器学习(基于Python)--k-近邻算法
- 机器学习基本知识以及几种分类算法的Python实现(适合入门)
- Python 机器学习 K-近邻算法
- 机器学习 & python k-近邻算法
- 机器学习之K-近邻算法(Python描述)基础
- python机器学习之 K-近邻算法
- 机器学习-----之KNN近邻算法(python3)
- 机器学习经典算法详解及Python实现–K近邻(KNN)算法
- Python与机器学习(三):K-近邻算法
- python机器学习实战1:实现k-近邻算法
- 【Numpy】python机器学习包Numpy基础知识学习
- 【备忘】2017年最新北风网零基础学习机器学习(Python语言、算法、Numpy库、MatplotLib)视频教程)
- 机器学习经典算法详解及Python实现--K近邻(KNN)算法