代价函数
其中
def computeCost(X, y, theta):
inner = np.power(((X * theta.T) - y), 2)
return np.sum(inner) / (2 * len(X))
归一
学习率
正规方程
- 不需要学习率
- 一次算出
- n小于10000可以求逆
- 只用于线性模型
不可逆很少发生
import numpy as np
def normalEqn(X, y):
#np.linalg.div求矩阵的逆
theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于X.T.dot(X)
return theta
S型函数
import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
判定边界
常规的一条直线划分:一次方
-
逻辑回归的代价函数
和线性回归不同,带入后的代价函数是非凸函数,有很多局部最小值,重定义:
import numpy as np
def cost(theta, X, y):
theta = np.matrix(theta)
X = np.matrix(X)
y = np.matrix(y)
first = np.multiply(-y, np.log(sigmoid(X* theta.T)))
second = np.multiply((1 - y), np.log(1 - sigmoid(X* theta.T)))
return np.sum(first - second) / (len(X))
一对多
-
过拟合
高次项导致
- 惩罚
- 不惩罚
减少误差
- 更多训练杨本
- 减少特征值
- 尝试更多特征
- 增加多项式特征
- 减少正则化程度
- 增加正则化程度