机器学习流程:数据收集--数据清洗--特征工程--数据建模
误差项定义
拟合的平面:
是偏置项
整合:
梯度下降
#小批量梯度下降
import numpy as np
class LinearRegression:
def __init__ (self,data,labels,polynomial_degree=0,num_features=2):
self.data = data
self.theta = np.zeros(num_features,1)
self.labels = labels
def train(self,alpha,num_iterations = 500):
return
def gradient_descent(self,alpha, num_iterations):
for i in range(num_iterations):
self.gradient_descent(alpha)
return
def gradient_step(self,alpha):
num_example = self.data.shape[0]
prediction = LinearRegression.hypothesis(self.data,self.theta)
delta = prediction - self.labels
theta = self.theta
theta = theta - alpha*(1/num_example)*(np.dot(delta.T,self.data)).T
self.theta = theta
def hypothesis(data,theta):
prediction = np.dot(data,theta)
return prediction
plotly工具包
sklearn 工具包
混淆矩阵
第二周
多维特征 ---多元线性回归
向量化
f = np.dot(w,x)+b
特征缩放
图像应该是平滑下降的,可能存在bug或者学习率太大。
第三周
逻辑回归
决策边界
逻辑回归中的代价函数
过度拟合(overfitting)
解决方法:
- 增加训练数据
- 对特征进行筛选 select features
- 正则化(regularization)--保留所有特征,但是防止特征产生过大影响,这有时会导致过拟合(改变加权)
正则化
---线性回归