이 기간 동안?? 기계 학습?? 을 배우고, 5장?? Logistic regression?? 을 배웠고, 상당히 힘들어졌다. 이 추적 원천은?? Logistic regression?? 에서?? 직선 regression?? 으로부터?? 최소 2배법?? 로 이어졌다. 마침내?? 고급 수학?? (제6판, 부록) 의 9장 10절?? 최소 2배법?? 으로 정렬되었다. 이것은 최소 2배법의 수학 원리가 어디에서 왔는지 이해하는 데 도움이 되었다.
1801년, 이탈리아 천문학자 주세프 피아지가 최초의 소행성인 밸리 신스타를 발견하였다. 40일간의 추적 관찰 후, 밸리 신스타가 태양의 뒤쪽으로 이동하기 때문에 피아지는 밸리 신스타의 위치를 잃었다. 이후 전 세계 과학자들은 피아지의 관측 데이터를 사용하여 밸리 신스타를 찾기 시작했지만 대부분의 사람들의 계산에 따라 별을 찾지 못했다. 당시 24세였던 고스는 또한 밸리 신스타의 궤도를 계산했다. 오스트리아 천문학자 하이리히 올버스는 고스의 계산에 따라 궤도를 다시 발견했다.
가우스의 최소제곱의 방법은 1809년 그의 저서?? 천체 운동론?? 에서 발표되었으며, 프랑스의 과학자 레젠더는 1806년 독립적으로?? 의 최소제곱을 발견했다.
1829년, 가우스는 최소제곱의 최적화 효과가 다른 방법보다 강하다는 증거를 제공하였다. 가우스-말코프 정리를 참조하라.
만약 우리가 몇 척의 전함의 길이와 너비 데이터를 수집한다면
이 자료를 바탕으로, 우리는 Python으로 분포점 그래프를 만들었습니다.
이 그림의 코드는 다음과 같습니다.
```
import numpy as np # -*- coding: utf-8 -*
import os
import matplotlib.pyplot as plt
def drawScatterDiagram(fileName): # 改变工作路径到数据文件存放的地方
os.chdir("d:/workspace_ml")
xcord=[];ycord=[]
fr=open(fileName)
for line in fr.readlines():
lineArr=line.strip().split()
xcord.append(float(lineArr[1]));ycord.append(float(lineArr[2]))
plt.scatter(xcord,ycord,s=30,c='red',marker='s')
plt.show()
```
假如我们取前两个点(238,32.4)(152, 15.5)就可以得到两个方程
152*a+b=15.5
328*a+b=32.4
解这两个方程得a=0.197,b=-14.48
那样的话,我们可以得到这样的拟合图:
![线性回归之——最小二乘法](/upload/asset/8c4ec1df86e5867e4ce4da6af7d7c8423b163ef7.png)
好了,新的问题来了,这样的a,b是不是最优解呢?用专业的说法就是:a,b是不是模型的最优化参数?在回答这个问题之前,我们先解决另外一个问题:a,b满足什么条件才是最好的?
答案是:保证所有数据偏差的平方和最小。至于原理,我们会在后面讲,先来看看怎么利用这个工具来计算最好的a和b。假设所有数据的平方和为M,则
![线性回归之——最小二乘法](/upload/asset/7189e60a47e6a0a78747c40ff511abe8357350c0.png)
我们现在要做的就是求使得M最小的a和b。请注意这个方程中,我们已知yi和xi
那其实这个方程就是一个以(a,b)为自变量,M为因变量的二元函数。
回想一下高数中怎么对一元函数就极值。我们用的是导数这个工具。那么在二元函数中, 我们依然用导数。只不过这里的导数有了新的名字“偏导数”。偏导数就是把两个变量中的一个视为常数来求导。
通过对M来求偏导数,我们得到一个方程组
![线性回归之——最小二乘法](/upload/asset/4a863a2f6678f5689641aafb11860b12bc820f80.png)
这两个方程中xi和yi都是知道的。
很容易就求得a和b了。由于采用的是维基百科的数据,我这里就直接用答案来画出拟合图像:
![线性回归之——最小二乘法](/upload/asset/2cfbd2f5af3b691577361855ebe337110be5991d.png)
```
# -*- coding: utf-8 -*importnumpy as npimportosimportmatplotlib.pyplot as pltdefdrawScatterDiagram(fileName):
# 改变工作路径到数据文件存放的地方os.chdir("d:/workspace_ml")xcord=[];
# ycord=[]fr=open(fileName)forline infr.readlines():lineArr=line.strip().split()xcord.append(float(lineArr[1]));
# ycord.append(float(lineArr[2]))plt.scatter(xcord,ycord,s=30,c='red',marker='s')
# a=0.1965;b=-14.486a=0.1612;b=-8.6394x=np.arange(90.0,250.0,0.1)y=a*x+bplt.plot(x,y)plt.show()
# -*- coding: utf-8 -*
import numpy as np
import os
import matplotlib.pyplot as plt
def drawScatterDiagram(fileName):
#改变工作路径到数据文件存放的地方
os.chdir("d:/workspace_ml")
xcord=[];ycord=[]
fr=open(fileName)
for line in fr.readlines():
lineArr=line.strip().split()
xcord.append(float(lineArr[1]));ycord.append(float(lineArr[2]))
plt.scatter(xcord,ycord,s=30,c='red',marker='s')
#a=0.1965;b=-14.486
a=0.1612;b=-8.6394
x=np.arange(90.0,250.0,0.1)
y=a*x+b
plt.plot(x,y)
plt.show()
```
데이터 합성에서, 왜 모델의 예측 데이터와 실제 데이터의 차이의 제곱을 절대값과 최소값 대신 모델의 매개 변수를 최적화하도록 하는 걸까요?
이 질문에 대한 답변은 이미 있습니다. 링크를 참조하십시오.http://blog.sciencenet.cn/blog-430956-621997.html)
개인은 이 설명이 매우 흥미롭다고 느꼈다. 특히 그 안의 가설: f (x) 의 모든 지점에서 벗어나는 모든 지점에는 소음이 있다.
한 점의 편차가 더 멀리 갈수록 더 큰 소음, 더 작은 점의 발생 확률이 나타난다. 그렇다면 편차의 정도 x와 발생 확률 f (x) 는 어떤 관계를 충족시키는가?
위와 같은 경우 모두 2차원 상태이며, 즉 하나의 자변이 있습니다. 그러나 실제 세계에서 최종 결과에 영향을 미치는 것은 여러 가지 요소의 중첩이며, 즉 자변이 여러 가지 상태가있을 수 있습니다.
일반적인 N 준선형 함수들에 대해,
물론 자연은 단순한 선형보다는 다항성 합성이 더 많고, 그것은 더 높은 내용이다.
원작 저작물, 복제 허용, 복제 할 때 반드시 하이퍼 링크 형태로 기사의 원본을 표시하십시오. 작가 정보 및 이 선언;; 그렇지 않으면 법적 책임을 다할 것입니다.http://sbp810050504.blog.51cto.com/2799422/1269572