机器学习笔记—线性模型(分类)算法介绍(5)—附完整代码
以下都是本人在学习机器学习过程中的一些心得和笔记,仅供参考。
1.用于回归的线性模型
- 线性模型也广泛应用于分类问题,预测公式如下:

这个公式看起来与线性回归公式非常相似,但是我们没有返回特征的加权求和,而是为预测设置了阈值(0)。如果函数值小于0,我们就预测类别-1;若函数值大于0,我们就预测类别+1。
- 对于用于回归的线性模型,输出
y是特征的线性函数,是直线,平面或者超平面(对于更高维的数据集) - 对于用于分类的线性模型,决策边界是输入的线性函数。
- 换句话说,(二元)线性分类器是利用直线,平面或者超平面来分开两个类别的分类器。
学习线性模型有很多算法,这些算法的区别在于以下两点:
- 系数和截距的特定组合对训练数据拟合好坏的度量方法;
- 是否使用正则化,以及使用哪种正则化方法。
最常见的两种线性分类算法是**Logistic回归**(logistic regression)和线性支持向量机(linear support vector machine,线性SVM)
我们将LogisticRegression和LinearSVC模型应用到forge数据集,并将线性模型找到的决策边界可视化:
from sklearn.linear_model import LogisticRegression
#导入LogisticRegression模型
from sklearn.svm import LinearSVC
#导入LinearSVC模型
import mglearn
import matplotlib.pyplot as plt
X,y=mglearn.datasets.make_forge()
#导入forge数据集
fig,axes = plt.subplots(1,2,figsize=(10,3))
for model,ax in zip([LinearSVC(),LogisticRegression()],axes):
clf=model.fit(X,y)
mglearn.plots.plot_2d_separator(clf,X,fill=False,eps=0.5,ax=ax)
mglearn.discrete_scatter(X[:,0],X[:,1],y,ax=ax)
ax.set_title("{}".format(clf.__class__.__name__))
ax.set_xlabel("Feature 0")
ax.set_ylabel("Feature 1")
axes[0].legend()
plt.show()

SVM和Logistic回归在forge数据集上的决策边界
在这张图中,forge数据集的第一个特征位于x轴,第二个特征位于y轴,与前面相同。
位于黑线上方的新数据点被划为类别1,而在黑线下方的数据点会被划为类别0。
- 两个模型都得到了相似的决策边界,都默认使用
L2正则化
对于LogisticRegression和LinearSCV,决定正则化强度的权衡参数叫做C。
C值越大,对应正则化越弱,也就是说,参数C的值较大,那么两个模型将尽可能将训练集拟合到最好;如果C的值较小,那么模型更强调是系数w接近于0.- 参数
C的作用还有另一个有趣之处。较小的C可以让算法尽量适应“大多数”数据点,而较大的C值更强调每个数据点都分类正确的重要性。
mglearn.plots.plot_linear_svc_regularization()

C值的线性SVM在forge数据集上的决策边界
- 在左图中,
C的值最小,对应强正则化;大部分属于类别0的点都位于底部,大部分属于类别1的点都位于顶部。 - 中间图,
C的值较大,模型更关注两个分类错误的样本,使得决策边界的斜率变大; - 在右图中,
C的值非常大,使得决策边界的斜率变得更大。
与回归的情况类似,用于分类的线性模型在低维空间中看起来肯那个非常受限,决策边界只能是直线或者平面。
同样,在高维空间中,用于分类的线性模型变得非常强大,当考虑更多特征时,避免过拟合变得越来越重要。
- 在乳腺癌数据集上详细分析
LogisticRegression:
In:
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
cancer=load_breast_cancer

本文介绍了线性模型在分类问题中的应用,包括用于回归和多分类的线性模型。线性分类器如逻辑回归和线性支持向量机通过设定阈值进行预测。正则化参数C影响模型复杂度,较小的C导致强正则化,较大的C允许更好的拟合。‘一对其余’方法用于多分类问题,每个类别对应一个二分类模型。线性模型的优点是训练和预测速度快,适合大规模数据,但解释性有限,低维空间表现可能不如其他模型。
最低0.47元/天 解锁文章
992

被折叠的 条评论
为什么被折叠?



