3.正则化——新闻分类

影响结果出了最终的目标,还会有许多细节因素

在机器学习中,往往会面临很多过拟合和欠拟合的问题。

欠拟合是训练不到位,过拟合是训练过头,会导致泛化性差

正则化是在损失函数中添加一个惩罚项,以简化模型

对于惩罚项Penalty------L1、L2

L1正则化:

会使一些特征的权重变为0,因此可以用来做特征选择。

λ是超参数,用于控制正则化强度,wi是第i个特征的权重

优点:减少特征数量

缺点:可能会过度惩罚某些特征,导致一些有用信息被舍弃

L2正则化:

使所有特征的权重都变小且不为零。

优点:降低权重,防止过拟合

正则化有广泛的应用

在线性回归中:通过添加L1、L2进行正则化

在神经网络中:通过添加正则项,控制模型复杂度

多元线性回归+L1------Lasso回归

多元线性回归+L2------Ridge岭回归

新闻分类

python 复制代码
from sklearn.datasets import fetch_20newsgroups
from sklearn.pipline import make_pipeline
from sklearn.feature_extraction.text import Countvectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

train = fetch_20newsgroups(subset="train")
test = fetch_20newsgroups(subset="test")

#数据是文本文件,须通过pipeline提取,提取后通过CountVectorizer向量化,然后采用逻辑回归训练
pipeline = make_pipeline(CountVectorizer(), LogisticRegression(max_iter = 3000))

pipeline.fit(train.data, train.target)

y_pred = pipeline.predict(test.data)

print("Accuracy:%。2f" % accuracy_score(test.target, y_pred))