说明:本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解。 第四章是对模型训练内部工作流程的了解,帮助炼丹师们找到恰当的学习模型、算法、数据集。
为了尽量简单(懒),在这里默认已经了解线性回归、多项式回归、损失函数、梯度下降
1. 简单的线性回归模型,讨论两种不同训练方法的最优解
- 封闭方程求根运算,得到模型在当前训练集上的最优解。
- 迭代优化(梯度下降GD),调整模型参数获取最小损失函数。批量梯度下降、随机梯度下降、小批量梯度下降。
- 2. 多项式回归,用来拟合非线性数据集
- 介绍正则方式减少过拟合的出现
- 3. 介绍Logistic回归
- 4. 介绍Softmax回归
3. 逻辑回归
逻辑回归用于估计实例属于某个类别的概率,其实就是二分类器。
概率估计
逻辑回归模型计算输入的特征加权总和,再输入logistic函数进行处理后输出。生成一个逻辑方法图示,根据逻辑回归模型的输出值预测y
训练和损失函数
训练是为了得到θ使正例概率增大,负例概率减小,可以通过单个训练实例X的损失函数实现。 公式 逻辑回归损失函数(对数损失)
OK,得到这个损失函数之后如何求解?
无解的,因为没有等价的正态方程,但是这个损失函数是凸函数,可以通过求偏导数优化获取全局最小值。
决策边界
在这里使用iris数据库来分析逻辑回归。
iris中有三种Setosa,Versicolor,Virginica,可以建立一个分类器,通过花瓣宽度特征来识别Virginica。
1.加载数据
可以看到data项目中有四种字段[5.1, 3.5, 1.4, 0.2],这里只获取data中第三列数据。
对y数据进行处理,将label转为虚拟变量,这部分在机器学习Day3(机器学习100天-Day3) 中有介绍。
from sklearn import datasetsfrom sklearn.linear_model import LogisticRegressioniris=datasets.load_iris()list(iris.keys())X=iris['data'][:,3:]y=(iris["target"] == 2).astype(np.int)
2.训练模型
log_reg=LogisticRegression()log_reg.fit(X,y)
3.评估模型
评估模型,设定花瓣宽度从0到3厘米
X_new=np.linspace(0,3,1000).reshape(-1,1)y_proba=log_reg.predict_proba(X_new)plt.plot(X_new,y_proba[:,1],"g-