【《机器学习》第3章线性模型】基本形式+线性回归
凸函数凸函数与凹函数凸函数判断:如果是一元函数 f(x)f(x)f(x) ,我们可以求二阶导数 f′′(x)f''(x)f′′(x) ,如果二阶导 f′′(x)f''(x)f′′(x) 总是非负,即总是大于等于0, f(x)f(x)f(x)就是凸函数。如果是多元函数 f(X)f(X)f(X) ,我们可以通过Hessian矩阵(由多元函数的二阶导数组成的方阵),如果Hessian矩阵是半正定矩阵,则
·
凸函数
凸函数判断:
- 如果是一元函数 f ( x ) f(x) f(x) ,我们可以求二阶导数 f ′ ′ ( x ) f''(x) f′′(x) ,如果二阶导 f ′ ′ ( x ) f''(x) f′′(x) 总是非负,即总是大于等于0, f ( x ) f(x) f(x)就是凸函数。
- 如果是多元函数 f ( X ) f(X) f(X) ,我们可以通过Hessian矩阵(由多元函数的二阶导数组成的方阵),如果Hessian矩阵是半正定矩阵,则是 f ( X ) f(X) f(X) 凸函数。
损失函数
损失函数用来衡量模型拟合成都的好坏
- 线性回归的损失函数:均方误差函数MSE
- 逻辑回归的损失函数:对数损失函数
导数

基本形式
线性回归
例题请参考ppt
实现
- 将样本数据转换为增广矩阵形式:
import nump as np
ones=np.ones((X.shape[0],1))
np.hstack((ones,X))
- 矩阵转置:
XT=X.T - 矩阵相乘:
XTX=np.dot(XT,X) - 矩阵的逆:
np.linalg.inv(XTX)
代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("ex0_1.csv",header=None)
data = df.values
X=data[:,0].reshape((-1,1))
Y=data[:,1].reshape((-1,1))
plt.scatter(X,Y)
x_min = min(X)
x_max = max(X)
ones=np.ones((X.shape[0],1))
X=np.hstack((ones,X))
XT=X.T
XTX=np.dot(XT,X)
XTX_1=np.linalg.inv(XTX)
XTX_1XT=np.dot(XTX_1,XT)
W=np.dot(XTX_1XT,Y)
x_w = np.linspace(x_min,x_max,100)
y_w = x_w*W[1]+W[0]
plt.plot(x_w,y_w)
plt.show()
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)