算法就是解决问题的步骤,就是y=f(x)钟的f。要成为一个算法工程师就得转变思维,从原来的已知y=f(x)和x求y变成已知y和x求f的过程。当然我知道这很难,下面我们一起学习怎么求。
举个例子:
把大象关进冰箱需要几步?第一步把冰箱门打开、第二步把大象装进去、第三步把冰箱门关上。这三步就是算法,它解决了把大象关进冰箱的这个问题,现实生活中的很多问题都可以用算法思维来解决问题,拆解问题,分步解决。
当然这个例子是广义的算法,而我们要学的是狭义的算法,除了解决问题的步骤之外,还需要关键的数据结构和数据转化,换句话说我们研究的具体的算法是数字相关的算法,解决的问题是从一个数据分布到另一个数据分布的问题。
具体怎么使用
已知:
X:1 2 3 4 5
Y: 3 5 7 9 11
求:y=f(x)
相信这个问题大家在中学都遇到过,中学一般用最小二乘法来解决,但是为什么能用最小二乘法,和为什么要用最小二乘法,什么叫最小二乘法,大家不一定都能理解。
下面我们来用算法的思维推到一遍:
问题:如何来求x和y之间的关系?
步骤:
Step-1:猜,设,y=ax+b
Step-2:求a,b的值,𝑎∈𝑅, 𝑏∈𝑅
Step-3: 代数据,构造函数(均方差)
L(a,b)=((a+b)-3)^2+((2a+b)-5)^2+…
Step-4: 求L取得极小值时,a,b的值
求导+解方程法,极值点导数等于0
Step-5: 代入数值就能求得a=2,b=1
本例题中通过构造均方差函数,推断出当均方差等于最小值的时候,就是拟合最好的a和b,进而推断出均方差的倒数等于0的时候均方差取得最小值,通过导数化简,得到最小二乘法的公式。
这是一元一次线性回归方程的求解办法,如果是多元或者多次,就不能用最小二乘法了,算法将极其复杂。
总结:
针对数字相关算法,我们可以通过下面步骤来解决问题:
1、假设y=f(x)
2、创建构造函数
3、构造函数进行求导
4、让导数等于0
在数学中一切关系都可以用函数来表示,一切关系都是函数,求数据间的相关关系,就是在求函数本身。