达观杯文本处理(四)--LR,SVM
达观杯文本处理(四)--LR,SVM
1.逻辑回归(LR)模型,理论学习和实践
1.1 LR 模型
LR模型可以被认为就是一个被Sigmoid函数(logistic方程)所归一化后的线性回归模型!
1.2 LR的代价函数(cost function)
根据线性回归模型的经验,我们会选择模型输出与实际输出的误差平方和作为代价函数,如下(公式1.2.1):
通过最小化代价函数,对参数组w进行求解。但是由于1.1.2属于非凸函数,存在很多的局部最小值,不利于整体求解,于是LR中做如下变通。根据概率的后验估计:
将上面两个公式可以合并为一个:
1.3 代码实现
因为在前一个模型保存的时候没有保存x_test,和y_test,所以在读取后又拆分了一次。然后使用逻辑回归来预测了一下。
import pickle
from sklearn.linear_model.logistic import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
fp = open('data_w_tfidf.pkl', 'rb')
x_train,y_train=pickle.load(fp)
x_train,x_test,y_train,y_test=train_test_split(x_train,y_train,test_size=0.3, random_state=100)
lr = LogisticRegression(C=120,dual=True)
lr.fit(x_train,y_train)
y_predict=lr.predict(x_test)
# print(y_predict.shape)
# print(y_test.shape)
print("f值",f1_score(y_test,y_predict,average='micro'))
2.支持向量机(SVM) 模型,理论学习和实践
2.1 SVM模型
和感知机模型一样,SVM(支持向量机模型)也是旨在求出n维空间的最优超平面将正负类分开。这里的达到的最优是指在两类样本点距离超平面的最近距离达到最大,间隔最大使得它区别于感知机学习,SVM中还有核技巧,这样SVM就是实际上的非线性分类器函数。
2.2 线性可分支持向量机
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面
直观上,超平面B1的分类效果更好一些。将距离分离超平面最近的两个不同类别的样本点称为支持向量(support vector)的,构成了两条平行于分离超平面的长带,二者之间的距离称之为margin。显然,margin更大,则分类正确的确信度更高(与超平面的距离表示分类的确信度,距离越远则分类正确的确信度越高)。通过计算容易得到:
具体关于svm模型其他讲解参考链接2
2.3 代码实现
同上的原因。
import pickle
from sklearn.svm import LinearSVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
fp = open('data_w_tfidf.pkl', 'rb')
x_train,y_train=pickle.load(fp)
x_train,x_test,y_train,y_test=train_test_split(x_train,y_train,test_size=0.3, random_state=100)
lr = LinearSVC(C=5, dual=False)
lr.fit(x_train,y_train)
y_predict=lr.predict(x_test)
print("f值",f1_score(y_test,y_predict,average='micro'))
参考:https://blog.****.net/wenjunding/article/details/78837251
https://www.cnblogs.com/en-heng/p/5965438.html