目录

前言:

学习的方法:

最小二乘法:

正则化:

小结:

参考资料:


前言:

大致看完了吴恩达老师的视频后,对于机器学习有了一定的了解,但是无监督学习部分只理解了K-Means,监督学习算是入门了可是视屏听完以及完成了笔记后,感觉这部分算法掌握的不全,故重新看书。

学习的方法:

照着书本上代码敲,机器学习实战、

统计学方法&机器学习实战(一) 机器学习基础_最小二乘法

最小二乘法:

统计学方法&机器学习实战(一) 机器学习基础_多项式_02

import numpy as np
import scipy as sp
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
%matplotlib inline


# 目标函数
def real_func(x):
return np.sin(2*np.pi*x)
# 多项式
def fit_func(p, x):
f = np.poly1d(p)
return f(x)
# 残差
def residuals_func(p, x, y):
ret = fit_func(p, x) - y
return ret


# 十个点
x = np.linspace(0, 1, 10)
x_points = np.linspace(0, 1, 1000)
# 加上正态分布噪音的目标函数的值
y_ = real_func(x)
y =[np.random.normal(0, 0.1) + y1 for y1 in y_]

def fitting(M=0):
"""
M 为多项式的次数
"""
# 随机初始化多项式参数
p_init = np.random.rand(M +1)
# z最小二乘法
p_lsq = leastsq(residuals_func, p_init,args=(x, y))
print('Fitting Parameters:', p_lsq[0])

#可视化
plt.plot(x_points, real_func(x_points), label='real')
plt.plot(x_points, fit_func(p_lsq[0], x_points),label = 'fitted curve')
plt.plot(x,y,'bo',label='noise')
plt.legend()
return p_lsq

统计学方法&机器学习实战(一) 机器学习基础_最小二乘法_03


当M=9时,多项式曲线通过了每个数据点,但是造成了过拟合

正则化:

统计学方法&机器学习实战(一) 机器学习基础_最小二乘法_04

统计学方法&机器学习实战(一) 机器学习基础_多项式_05


小结:

结合吴恩达笔记,画图。这部分是比较容易理解的。需要掌握的就是最小二乘法以及正则化问题

参考资料:

Apache CN 的机器学习基础笔记

统计学习方法-李航

Jack Cui的机器学习笔记​​https://cuijiahua.com/blog/ml/​