顾名思义,机器学习的目的就是让机器具有类似于人类的学习、认识、理解事物的能力。试想一下,如果计算机能够对大量的癌症治疗记录进行归纳和总结,并能够给医生提出适当的建议和意见,那对病人的康复来说,是多么的重要。除了医疗领域,金融股票、设备维护、自动驾驶、航空航天等领域也对机器学习表现出了越来越多的关注。
大量的经济活动都依赖于信息,我们不能在海量的数据中迷失,机器学习将有助于我们穿越数据雾霭,从中抽取出有用数据。
开发机器学习应用的步骤
- 收集数据
- 准备输入数据
- 分析输出数据
- 训练算法
- 测试算法
- 使用算法
NumPy函数库基础
>>> from numpy import *
生成5*5的随机数组
>>> random.rand(5,5)
array([[ 0.5577255 , 0.16605936, 0.86402166, 0.53087529, 0.92741243], [ 0.98622521, 0.16081941, 0.32319347, 0.62943337, 0.56175535], [ 0.7158353 , 0.59454429, 0.61509942, 0.2703153 , 0.03515195], [ 0.44527185, 0.44215531, 0.6581029 , 0.49315898, 0.64671676], [ 0.85360622, 0.64185716, 0.67478971, 0.77968143, 0.62163755]])使用mat()函数可以将数组转化为矩阵:
>>> randMat = mat(random.rand(5,5))
>>> randMatmatrix([[ 0.29038742, 0.81058743, 0.3229996 , 0.12659072, 0.55904892], [ 0.85308241, 0.20153457, 0.68553523, 0.73932182, 0.95948561], [ 0.8867981 , 0.18463242, 0.9196909 , 0.65801613, 0.73700477], [ 0.40687617, 0.58883793, 0.67672847, 0.03745439, 0.26739517], [ 0.07062353, 0.39187375, 0.61789692, 0.12173099, 0.39572813]])矩阵求逆:
>>> randMat.I
matrix([[ -2.26693263, 4.14532219, -4.03041241, 4.5932194 , -2.44567457], [ 4.73223842, -6.50832869, 6.74880442, -4.34773802, -0.53633287], [ -1.1626255 , -0.31280243, 0.26721693, 0.64896444, 1.46470218], [ 9.32861429, -15.6534935 , 18.05037341, -13.19141493, 0.07141071], [ -5.33583478, 11.00877191, -11.93354538, 6.53020508, 1.18558434]])矩阵相乘:
>>> invRandMat = randMat.I
>>> randMat*invRandMatmatrix([[ 1.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, -5.55111512e-17], [ 0.00000000e+00, 1.00000000e+00, -1.77635684e-15, 0.00000000e+00, -4.44089210e-16], [ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00, -4.44089210e-16], [ 1.33226763e-15, -1.33226763e-15, 4.44089210e-16, 1.00000000e+00, -1.66533454e-16], [ -4.44089210e-16, 8.88178420e-16, -8.88178420e-16, 4.44089210e-16, 1.00000000e+00]])
总结
机器学习算法帮助我们从海量数据中提取有用信息。
NumPy处理矩阵。