任务4 LR+SVM模型的尝试

逻辑回归

理论

面对一个分类问题,我们用线性回归的模型来进行进行分类(注意虽然有回归两个字,但是逻辑回归解决的是分类问题)。线性回归会得到一个具体的数值,然后我们会通过一个激活函数,一般采用Sigmoid函数(因为这个函数曲线光滑)将输出归结到0到1,然后设定一个阈值,高于这个阈值为正,低于这个阈值为负,公式:
ϕ ( x ) = 1 1 + e − ( w T x + b ) \phi (x) = \frac{1}{1+e^{-(w^Tx+b)}} ϕ(x)=1+e(wTx+b)1
通过优化代价函数:
L ( θ ) = log ⁡ L ( θ ) = ∑ i = 1 m ( y i logh ⁡ θ ( x i ) + ( 1 − y i ) log ⁡ ( 1 − h θ ( x i ) ) L(\theta)=\log L(\theta)=\sum_{i=1}^{m}\left(y_{i} \operatorname{logh}_{\theta}\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(x_{i}\right)\right)\right. L(θ)=logL(θ)=i=1m(yiloghθ(xi)+(1yi)log(1hθ(xi))
从而得到最优的权值w来预测测试集

实践

from sklearn import svm

clf = svm.LinearSVC(C=5,dual=False)
clf.fit(x_train,y_train)
clf_predict=clf.predict(x_val)
sklearn.metrics.f1_score(y_val, clf_predict, average='weighted')

支持向量机

理论

支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:

当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;
当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;
当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机;

实践

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression(C=120,dual=True)
lr.fit(x_train,y_train)
lr_predict=lr.predict(x_val)
sklearn.metrics.f1_score(y_val, lr_predict, average='weighted')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值