2020年的暑假,忙里偷闲买了本西瓜书,照着小破站上的machine learning的教程学了个框架。
这张图让我明白了机器学习在人工智能的地位,以及其下辖的分支学科。
怎么说呢,这是一门入门门槛比较低的学科,有一定的高数现代基础就能看得懂大多数算法,但是动手自己写代码,把抽象的模型用代码具体化真的非常难。
想要写代价函数必须了解一下几个概念:
- 线性回归
- 训练集
- 假设函数
线性回归: 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
训练集:一般的,令D={x1,x2,…xm}表示包含m个示例的数据集,每个示例由d个属性描述,其中xi=(xi1,xi2…xid)是d维样本空间的一个向量,则xij是xi在第j个属性上的取值。
假设函数:用来拟合训练集数据的某种函数模型
# -*- coding: utf-8 -*-
import numpy
x = numpy.random.randint(low=10,size=(3,4))
y = numpy.random.randint(low=10,size=(3,1))
theta = numpy.random.rand(4,1)
print(theta)
print(y)
print(x)
def computeCost(a,b,angle):
inner = numpy.power((numpy.dot(a, angle) - b),2)
return numpy.sum(inner)/(len(a) * 2)
result = computeCost(x, y, theta)
print(result)
以上代码利用numpy生成3组包含4个特征值的数据,以及期待的结果
分别生成34以及31的矩阵
以下为代码的运行结果