统计学习方法概论
提示:统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行分析与预测的一门学科。
统计学习包括:监督学习、非监督学习、半监督学习和强化学习
前言
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、统计学习方法三要素是什么?
模型、策略、算法,对理解统计学习方法起到提纲挈领的作用。
二、使用最小二乘法拟合曲线
1.拟合函数
代码如下(示例):我们用目标函数y=sin2Πx,加上一个正态分布的噪音干扰,用多项式去拟合
import numpy as np
import scipy as sp
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
%matplotlib inline
# 目标函数
def real_funx(x):
return bp.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
2.使用最小二乘法
代码如下(示例):此时L2范数(残差平方和)最小,h(x)和y相似度最高,更拟合
# 十个点
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):
# 随机初始化多项式参数
p_init = np.random.rand(M+1)
# 最小二乘法
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
M为多项式的系数
3.在M不同条件下的结果
# M=0
p_lsq_1 = fitting(M=0)
p_lsq_9 = fitting(M=9)
# Fitting Parameters: [-5.40825170e+03 2.78585706e+04 -6.00342111e+04 7.05196117e+04
#-4.92893560e+04 2.09650946e+04 -5.27104706e+03 6.88987412e+02
# -2.92533545e+01 4.05436782e-02]
当参数过多时,出现了过拟合现象
4.正则化
结果显示过拟合,引入正则化项,降低过拟合
# 正则化,引入正则化项(regularizer),降低过拟合
regularization = 0.0001
def residuals_func_regularization(p,x,y):
ret = fit_func(x,y)
ret = np.append(ret,0.5*regularization*np.sqrt(np.square(p)))
return ret
# 最小二乘法+正则式
p_init = np.random.rand(9+1)
p_lsq_regularization = leastsq(residuals_func_regularization,p_init,args=(x,y))
plt.plot(x_points,real_func(x_points),label='real')
plt.plot(x_points,fit_func(p_lsq_9[0],x_points),label='fitted curve')
plt.plot(x_points,fit_func(p_lsq_regularization[0],x_points),label='regularization')
plt.plot(x,y,'bo',label='noise')
plt.legend()
总结
在监督式学习中,主要是构建一个模型进行学习,给定输入预测相应的输出,当进行模型选择或者说提高学习的泛化能力是一个重要问题。如果只考虑减少训练误差,就可能产生过拟合现象。模型选择的方法有正则化与交叉验证。学习方法泛化能力的分析是统计学习理论研究的重要课题。