当前位置: 首页 > news >正文

张店网站制作哪家好活动策划方案步骤

张店网站制作哪家好,活动策划方案步骤,柯基,服务器维护中目录 简介 一.分类评估⽅法 1.混淆矩阵 2.精确率(Precision)与召回率(Recall) 3.F1-score 4.分类评估报告api 2.正则化惩罚 3.⽋拟合和过拟合 4.K折交叉验证 5.代码分析 简介 接上一篇博客最后 机器学习第二课之逻辑回归#xff08;一#xff09;LogisticRegres…目录 简介 一.分类评估⽅法 1.混淆矩阵  2.精确率(Precision)与召回率(Recall)  3.F1-score  4.分类评估报告api  2.正则化惩罚 3.⽋拟合和过拟合  4.K折交叉验证 5.代码分析 简介 接上一篇博客最后 机器学习第二课之逻辑回归一LogisticRegression 这是我们对银行贷款的检测结果现在我们就对这些结果指标进行进一步分析。 一.分类评估⽅法 1.混淆矩阵  在分类任务下预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合构成混淆矩阵(适⽤于多分类) TPTrue Positive真正例预测为正例且实际为正例的数量FPFalse Positive伪正例预测为正例但实际为负例的数量FNFalse Negative伪反例预测为负例但实际为正例的数量TNTrue Negative真反例预测为负例且实际为负例的数量 准确率是一个常用的性能指标但在类别不平衡的情况下可能会产生误导。例如如果大多数样本是负类模型只需简单地预测所有样本为负类即可获得高准确率。  2.精确率(Precision)与召回率(Recall)  精确率预测结果为正例样本中真实为正例的⽐例 精确率衡量的是模型在预测为正类时的准确性。在某些应用中如疾病筛查我们希望尽量减少假阳性因为假阳性可能导致不必要的后续检查或治疗。  召回率真实为正例的样本中预测结果为正例的⽐例查得全对正样本的区分能⼒ 召回率衡量的是模型对正类样本的识别能力。在某些情况下如癌症检测我们希望尽量减少假阴性因为漏掉一个真实的阳性样本可能会导致严重后果。  3.F1-score  还有其他的评估标准F1-score反映了模型的稳健型单独用精确率或者召回率不能很好的评估模型好坏。当 P 和 R 同时为 1 时F11。当有一个很大另一个很小的时候比如 P1R~0此时 F1~0。分子 2PR 的 2 完全了为了使最终取值在 0-1 之间进行区间放大无实际意义。  4.分类评估报告api  sklearn.metrics.classification_report(y_true, y_pred, labels[], target_namesNone ) y_true真实⽬标值 y_pred估计器预测⽬标值 labels:指定类别对应的数字 target_names⽬标类别名称 return每个类别精确率与召回率 2.正则化惩罚 对于逻辑回归的API LogisticRegression(penaltyl2, dualFalse, tol0.0001, C1.0, fit_interceptTrue,intercept_scaling1, class_weightNone, random_stateNone, solverliblinear,max_iter100, multi_classovr, verbose0, warm_startFalse, n_jobs1) 其中有个参数C表示正则化强度。为浮点型数据。正则化系数 λ 的倒数float 类型默认为 1.0。必须是正浮点型数。像 SVM 一样越小的数值表示越强的正则化。我们就来探讨一下这个正则化惩罚到底是什么含义。 当我们进行梯度下降的时候可能遇到一种情况我们遇到了两处都是寻找的极值点但是要怎么去区分这两个极值点那个是我们最需要的呢 对于一个我们获取的训练得到的函数 我们现在有个输入 ,这是一个包含 4 个元素的输入向量。经过我们得到对于w有两个不同的权重都取得相同的极值点。假设w0为1 权重与输入的乘积 与输入 X的乘积为  与输入 X的乘积为 权重的效果 : 只关注第一个输入特征而忽略其他特征这可能导致模型过拟合即模型在训练数据上表现很好但在新数据上表现差。均匀地关注所有输入特征因此能够学习到每个特征的信息泛化能力更强效果更好。 均方差损失函数 均方差损失函数用于衡量模型预测值与真实值之间的差异公式为 其中 是预测值y 是真实值。N 是样本数量。 是正则化惩罚项用于防止过拟合。 正则化惩罚的功能: 正则化惩罚主要用于惩罚权重参数 w防止模型过拟合。常见的正则化方法有 L1 正则化通过惩罚权重的绝对值来产生稀疏解即让一些权重变为 0。L2 正则化通过惩罚权重的平方来防止权重过大。 3.⽋拟合和过拟合  过拟合⼀个假设在训练数据上能够获得⽐其他假设更好的拟合 但是在测试数据集上却不能很好地拟合数据 此时认为这个假设出现了过拟合的现象。(模型过于复杂)⽋拟合⼀个假设在训练数据上不能获得更好的拟合并且在测试数据集上也不能很好地拟合数据此时认为这个假设出现了⽋拟合的现象。(模型过于简单) 那么是什么原因导致模型复杂线性回归进⾏训练学习的时候变成模型会变得复杂这⾥就对应前⾯再说的线性回归的两种关系⾮线性关系的数据也就是存在很多⽆⽤的特征或者现实中的事物特征跟⽬标值的关系并不是简单的线性关系。 原因以及解决办法 ⽋拟合原因以及解决办法 原因学习到数据的特征过少 解决办法 1添加其他特征项有时候我们模型出现⽋拟合的时候是因为特征项不够导致的可以添加其他特征项 来很好地解决。例如“组合”、“泛化”、“相关性”三类特征是特征添加的重要⼿段⽆论在什么场景都可 以照葫芦画瓢总会得到意想不到的效果。除上⾯的特征之外“上下⽂特征”、“平台特征”等等都可以 作为特征添加的⾸选项。 2添加多项式特征这个在机器学习算法⾥⾯⽤的很普遍例如将线性模型通过添加⼆次项或者三次项 使模型泛化能⼒更强。 过拟合原因以及解决办法 原因原始特征过多存在⼀些嘈杂特征 模型过于复杂是因为模型尝试去兼顾各个测试数据点 解决办法 1重新清洗数据导致过拟合的⼀个原因也有可能是数据不纯导致的如果出现了过拟合就需要我们重 新清洗数据。 2增⼤数据的训练量还有⼀个原因就是我们⽤于训练的数据量太⼩导致的训练数据占总数据的⽐例 过⼩。 3正则化 4减少特征维度防⽌维灾难4.K折交叉验证 对于上次我们的银行贷款的检测结果召回率只有百分之六十二而对于银行来说主要看的就是模型的召回率他们会尽量要求不能给失信的人贷款所有其他的准确率可以低一点但是召回率必须要达到理想。然而我们就可以使用交叉验证对模型进行提升。 就是在训练集中选一部分样本用于测试模型。         保留一部分的训练集数据作为验证集/评估集对训练集生成的参数进行测试相对客观的判断这些参数对训练集之外的数据的符合程度。  K折交叉验证k-fold cross validation         进行模型评估方式存在的弊端提出Cross Validation 交叉验证。 Cross Validation简言之就是进行多次数据划分每次划分时在不同的数据集上进行训练、测试评估从而得出一个评价结果如果是5折交叉验证意思就是在原始数据集上进行5次划分每次划分进行一次训练、评估最后得到5次划分后的评估结果一般在这几次评估结果上取平均得到最后的 评分。k-fold cross-validation 其中k一般取5或10 训练模型需要在大量的数据集基础上否则就不能够识别数据中的趋势导致错误产生同样需要适量的验证数据点。 验证集太小容易导致误差多次训练和验证模型。需要改变训练集和验证集的划分有助于验证模型。随机将整个数据集分成k折如图中所示依次取每一折的数据集作验证集剩余部分作为训练集算出每一折测试的召回率取这里K次的记录平均值 作为最终结果 交叉验证目的 我们本次的目的是去寻找最合适的C值提升模型召回率对于选取C的最优值我们就要把不同C值放到模型里面训练然后用验证集去验证得到结果进行比较如果只是简单地将数据集划分为训练集和测试集模型在测试集上的性能会受到数据划分方式的影响。不同的划分可能会导致模型在测试集上的表现差异较大这样得到的评估结果稳定性差不能可靠地反映模型的真实泛化能力 。例如某次划分刚好将一些具有特殊特征的样本集中在测试集模型在这个测试集上的性能就不能代表其在一般情况下的性能。 在逻辑回归中参数C是正则化强度的倒数。C值较小意味着正则化强度较大会对模型的权重进行更严格的约束使模型更加简单防止过拟合C值较大正则化强度较弱模型可以学习到更复杂的模式但也增加了过拟合的风险 。 通过交叉验证对不同C值进行评估可以直观地了解每个C值下模型在不同数据子集上的表现。如果C值过小模型在交叉验证中的表现可能会在训练集和验证集上都较差出现欠拟合如果C值过大虽然在训练集上表现较好但在验证集上的性能会下降出现过拟合。通过交叉验证能够找到一个合适的C值使得模型在训练集和验证集上都能有较好的平衡既具有一定的拟合能力又有较好的泛化能力。 5.代码分析 我们了解了分类评估方法、也了解了正则化惩罚、k折交叉验证等最终的目的都是让我们的模型的召回率得到提升那怎么能得到提升呢 导入依赖库 import pandas as pd # 数据处理 import numpy as np # 数值计算 from sklearn.preprocessing import StandardScaler # 特征标准化 from sklearn.model_selection import train_test_split # 数据划分 from sklearn.linear_model import LogisticRegression # 逻辑回归模型 from sklearn import metrics # 模型评估指标 from sklearn.model_selection import cross_val_score # 交叉验证 数据加载与预处理 # 加载数据集 data pd.read_csv(creditcard.csv)# 特征标准化对Amount列进行标准化均值为0标准差为1 scaler StandardScaler() data[Amount] scaler.fit_transform(data[[Amount]])# 特征选择删除Time列可能与欺诈检测无关 data data.drop([Time], axis1) 划分特征与标签 x data.iloc[:, :-1] # 所有行除最后一列外的所有列特征 y data.iloc[:, -1] # 所有行最后一列标签0正常1欺诈 划分训练集与测试集 x_train_w, x_test_w, y_train_w, y_test_w train_test_split(x, y, test_size0.4, random_state100 ) 交叉验证优化参数 C scores [] c_param_range [0.01, 0.1, 1, 10, 100] # 待测试的正则化参数Cfor i in c_param_range:# 定义逻辑回归模型使用L2正则化lr LogisticRegression(Ci, penaltyl2, solverlbfgs, max_iter1000)# 8折交叉验证评估指标为召回率recallscore cross_val_score(lr, x_train_w, y_train_w, cv8, scoringrecall)score_mean sum(score) / len(score) # 计算平均召回率scores.append(score_mean)print(fC等于{i}的召回率为{score_mean})# 选择最佳C值平均召回率最高的C best_c c_param_range[np.argmax(scores)] print(最好的c是, best_c) 通过交叉验证选择最优正则化参数C平衡模型过拟合与欠拟合。参数说明 C逻辑回归正则化强度的倒数C越小正则化越强。penaltyl2使用 L2 正则化防止权重过大。cv88 折交叉验证充分利用训练数据评估性能。scoringrecall选择召回率作为评估指标对欺诈检测至关重要因为需要尽可能识别所有欺诈交易避免漏检。 训练最终模型并评估  # 使用最佳参数C训练模型 estimator LogisticRegression(Cbest_c) estimator.fit(x_train_w, y_train_w)# 在训练集上的准确率 score estimator.score(x_train_w, y_train_w) print(score)# 在测试集上的详细评估报告 print(metrics.classification_report(y_test_w, test_predicted)) 用最优C值训练最终模型并评估性能 estimator.score输出训练集上的准确率正确分类的样本比例。classification_report输出测试集上的详细指标包括精确率precision、召回率recall、F1 值等尤其关注欺诈类1的召回率避免漏检欺诈交易。 完整代码 import pandas as pd import numpy as np import matplotlib as plt from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn import metrics import pylab as mpl from sklearn.model_selection import cross_val_scoredatapd.read_csv(creditcard.csv)scalerStandardScaler() data[Amount]scaler.fit_transform(data[[Amount]]) datadata.drop([Time], axis1)xdata.iloc[:, :-1] ydata.iloc[:, -1]x_train_w,x_test_w,y_train_w,y_test_wtrain_test_split(x,y,test_size0.4,random_state100)#交叉验证 scores[] c_param_range[0.01, 0.1, 1, 10, 100] for i in c_param_range:lrLogisticRegression(Ci, penaltyl2, solverlbfgs, max_iter1000)scorecross_val_score(lr, x_train_w, y_train_w, cv8, scoringrecall)score_meansum(score)/len(score)scores.append(score_mean)print(C等于{}的召回率为{}.format(i, score_mean))best_cc_param_range[np.argmax(scores)] print(最好的c是,best_c)estimatorLogisticRegression(Cbest_c) estimator.fit(x_train_w,y_train_w) test_predictedestimator.predict(x_test_w) scoreestimator.score(x_train_w,y_train_w) print(score) print(metrics.classification_report(y_test_w,test_predicted))
http://www.zqtcl.cn/news/480697/

相关文章:

  • 一小时做网站网上免费设计效果图
  • 网站如何注册域名公司主页填什么
  • 南宁国贸网站建设网站跟网页有什么区别
  • 兰州企业 网站建设短链接在线转换
  • 长沙网上商城网站建设方案导航网站系统
  • 网站更换目录名如何做301跳转网站活泼
  • 化妆品网站网页设计怎样在淘宝网做网站
  • 邢台建站湛江海田网站建设招聘
  • 免费个人网站建站能上传视频吗中国舆情在线网
  • 网站开发项目的心得体会惠州建设厅网站
  • 网站小程序怎么做北京单位网站建设培训
  • 北京市专业网站建设广州安全教育平台登录账号登录入口
  • 广州做网站的价格三个关键词介绍自己
  • 基于工作过程的商务网站建设:网页制作扬州网站建设公元国际
  • wordpress著名网站微信公众号怎么做网站链接
  • 长沙网站建设大概多少钱深圳做网站网络营销公司
  • 融资平台排行榜企业网站seo运营
  • 英文手表网站南昌装修网站建设
  • 网站建设要懂哪些技术甘肃园区网络搭建
  • go做的网站微信跳转链接生成器免费
  • 网站开发中怎么设置快捷键怎样打开用sql做的网站
  • 做餐饮企业网站的费用短视频素材免费下载网站
  • 美食优秀设计网站制作网页网站
  • 提供网站建设教学视频做淘宝美工需要知道的网站
  • 百度云可以做网站吗织梦网站下载
  • 有没有一起做游戏棋牌网站的用wordpress做商城
  • 有没有如何做网站的书常州网站推广公司哪家好
  • 金融直播间网站开发专业定制网页设计
  • 装饰公司网站开发c 网站开发实例教程
  • 专业层析成像代做网站网站建设收获