--------------------------------------------------------------------------------------------------------------
Machine Learning最重要的就是理解为什么要做Machine Learning。 ML在我看来就是让生硬的机器掌握某一件事的规律, 给到你想要的答案。
当然,ML大部分开展在Python这个语言,所以今后的分享基本都是基于Python的教学。
首先ML最重要的第一步就是获得数据
对于初学者,我建议大家可以使用Google Colab这个Website去做开发。Google Colab提供免费的算力,而且为开发者省去了pip install(或者pip3 install)这个非常烦人的动作。这也是为什么新手开发者建议在Colab开始。这里附上Google Colab的链接:https://colab.research.google.com/
对于获取数据,一般有几种渠道:一种是直接获取csv,json等格式的Datasets,这种方式的一大优点就是易上手。第二种是通过API获取,这个方式会在之后讲解。第三种就是在online的sites中直接提取数据,例如以png,jpeg形式存在的图片表格。这里不再过多赘述。
获取数据的几种形式大概就这些,那么怎么搭建起Colab和数据的桥梁呢?
这就要说到在ML和DS里面最基础的numpy了
numpy是一个非常好用的库,运算速度远超python原生,多用于多维矩阵运算。
加载库的方法,如下:
import numpy as np
可以在Google Colab的一个code cell中单独写这些加载库,会比较方便。
运行这个cell,会看到即时便运行成功,说明库成功地被加载了。
既然numpy主要用于矩阵运算,那么就要说到numpy array了。
我们可以创建一个python原生的list,例如:
list = [1,2,4,6,4,5]
转化为numpy array:
L = numpy.array(list)
这样一个numpy array就创建好了。
跟list的特性相像,可以通过index来获取array中对应的值,例如:
[1, 2, 3, 4, 5, 6, 7]
index: 0 1 2 3 4 5 6
^
|
|
x = L [ 0 ]这时,应该不难发现,x被赋值成了array里面第0个值,也就是1这时候,x和普通的python数字1并无区别,拥有相同的特性。
前面讲述的是最简单的一维数组,那么二维呢?
x1 = [1,2,3,4,5]
[2,3,4,5,6]
[3,4,5,6,7] 转化成numpy array:
list = numpy.array(x1)那么你已经学会了创建numpy array了,接下来就是数组运算了
numpy array的运算遵循linear algebra的矩阵运算法则,具体如下图:
加减法:
code实现:
import numpy as np
x1 = [1,2,3]
x2 = [2,5,7]
list1 = np.array(x1)
list2 = np.array(x2)
list_addition = list1 + list2
#另一种方法:
list_add = np.add(list1, list2)
#减法也是一样,把“+”换成“-”,把“.add"换成“.subtract"接下来是数组的整体计算,为了方便,不多赘述具体原理,方法如下图:
代码实现(这里因为篇幅限制,就不一一实现,只实现部分常用):
这里使用numpy的array生成方法简单偷懒创建一个array
import numpy as np
x = np.arange(4)
# x -> [1,2,3,4]
print("x =", x)
print("x + 5 =", x + 5)
print("x - 5 =", x - 5)
print("x * 2 =", x * 2)
print("x / 2 =", x / 2)
print("x // 2 =", x // 2)好了,看到这里,你已经学会了大部分numpy array的用法。这一期就结束了。
下一期,我将分享基本的数据集导入及清洗,以及pandas的基本方法。我们下期见!拜拜~