3.正则化——新闻分类
影响结果出了最终的目标,还会有许多细节因素
在机器学习中,往往会面临很多过拟合和欠拟合的问题。
欠拟合是训练不到位,过拟合是训练过头,会导致泛化性差
正则化是在损失函数中添加一个惩罚项,以简化模型
对于惩罚项Penalty——L1、L2
L1正则化:
会使一些特征的权重变为0,因此可以用来做特征选择。
λ是超参数,用于控制正则化强度,wi是第i个特征的权重
优点:减少特征数量
缺点:可能会过度惩罚某些特征,导致一些有用信息被舍弃
L2正则化:
使所有特征的权重都变小且不为零。
优点:降低权重,防止过拟合
正则化有广泛的应用
在线性回归中:通过添加L1、L2进行正则化
在神经网络中:通过添加正则项,控制模型复杂度
多元线性回归+L1——Lasso回归
多元线性回归+L2——Ridge岭回归
新闻分类
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_scoretrain = 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))