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

桂林网站建设制作wp网站建设

桂林网站建设制作,wp网站建设,浏览器里的广告怎么推广的,上海网站开发与目录 背景 一、适用数据集 1. 数据集选择 1.1 领域 1.2 数据集维度 1.3 记录行#xff08;样本数量#xff09; 2. 本文数据集介绍 3. 数据集下载 注意 二、逻辑回归的基本原理 1. 目的 2. Sigmoid 函数 3. 类别划分 4. 召回率 三、代码 1. 导入所需包数…目录 背景 一、适用数据集 1. 数据集选择 1.1 领域 1.2 数据集维度 1.3 记录行样本数量 2. 本文数据集介绍 3. 数据集下载 注意 二、逻辑回归的基本原理 1. 目的 2. Sigmoid 函数 3. 类别划分 4. 召回率 三、代码 1. 导入所需包数据集 2. 数据预处理数据编码 2.1 数据预处理 2.2 数据预处理编码Titanic dataset版可跳过 3. 绘制热力图 4. 数据拆分标准化 5. 逻辑回归分类算法 6. 绘制 PR / ROC 曲线 6.1 PR 曲线 6.2 ROC 曲线 背景 逻辑回归Logistic Regression是一种用于分类问题的统计模型尽管名字里有“回归”但它主要用于解决二元分类binary classification或多类分类问题。与线性回归不同逻辑回归输出的是一个概率通过设置阈值将概率转换为类别。 一、适用数据集 1. 数据集选择 逻辑回归适用于二分类问题即输出为两个类别如【是/否】或【正/负】。若要练习逻辑回归分析在选择数据集时可以参考以下 3 个方面。反过来如果在为项目选择合适的算法模型时数据集符合以下条件则可以选用逻辑回归进行数据分析。 1.1 领域 逻辑回归广泛应用于各种领域包括但不限于 医疗健康预测某人是否患病如患病/不患病阳性/阴性。金融预测贷款申请是否会被批准或是否会违约如信用风险评估。市场营销根据用户行为预测是否会购买产品或订阅服务。社交媒体通过用户行为预测某个帖子是否会获得点赞或分享。人力资源预测员工是否会离职。教育预测学生是否会通过考试或被录取。 1.2 数据集维度 特征数维度逻辑回归适用于中低维度的数据集。一般情况下输入特征数从 2 到 20 维是常见的范围。过多的特征可能会导致过拟合尤其是当样本数量不足时。类别标签逻辑回归特别适用于二分类任务因此类别标签只有两个如 0 和 1或者 “A 类” 和 “B 类”。 1.3 记录行样本数量 样本量大小逻辑回归的一个优势是即使在较小的数据集上也能有效工作通常数百到几千条记录的样本集即可获得良好的训练效果。典型样本数量可以在 100 到 10,000 行之间 小型数据集100-1000 行适合初学者理解逻辑回归的基本概念和快速训练模型。中型数据集1000-10,000 行适合做一些更复杂的练习如交叉验证、正则化等。 2. 本文数据集介绍 Titanic 数据集 基于 1912 年泰坦尼克号沉船事故的真实乘客数据泰坦尼克号是当时最大的远洋客轮之一但在其首次航行中不幸撞上冰山沉没超过1500人遇难。该数据集包含了泰坦尼克号部分乘客的个人信息以及他们是否在船难中幸存分析目的是预测哪些乘客能够在这场灾难中幸存下来。 数据集中包含 12 列的维度信息详细如下 PassengerId: 乘客的唯一标识符。Survived: 是否幸存目标变量0 未幸存1 幸存。Pclass: 乘客舱位等级1 一等舱2 二等舱3 三等舱。Name: 乘客姓名。Sex: 性别male 男性female 女性。Age: 年龄有部分缺失值。SibSp: 同行的兄弟姐妹或配偶人数。Parch: 同行的父母或子女人数。Ticket: 票号。Fare: 票价。Cabin: 船舱号有部分缺失值。Embarked: 登船地点C Cherbourg, Q Queenstown, S Southampton。 数据记录行共有 1309 行属于中型数据集。 3. 数据集下载 数据集下载地址https://www.kaggle.com/datasets/heptapod/titanic 也可以在文首 绑定资源 中下载获取原版下载出来有多列是无意义的【zero】列作者这里直接在表里删了上传资源为处理后的。自行在 Kaggle 下载的朋友记得处理【zero】列。 注意 Kaggle 上 Titanic 数据集有俩都点赞比较高不要选择看起来更完整的 Titanic dataset 博主先使用了 Titanic dataset因为预测结果全都是 100%于是开始 debug。。。 直到发现这个数据集的获救与否是由性别决定的dead。。 重复千万要使用对的 Titanic 数据集啊 二、逻辑回归的基本原理 1. 目的 逻辑回归的目的是预测输入数据属于某一类别的概率。它最常用于二元分类问题例如预测某个乘客在 Titanic 数据集中是否生还。 2. Sigmoid 函数 Sigmoid 函数的公式 逻辑回归模型的核心是 Sigmoid 函数它将线性回归的输出值任何实数压缩到 [0, 1] 的范围内这样我们可以将输出解释为概率。 其中 即将特征向量 X 经过线性组合权重 w 和偏置 b后输入到 Sigmoid 函数中。 通过这种方式我们将线性回归输出的值通常是实数转换为一个概率值 3. 类别划分 逻辑回归通常使用 0.5 作为默认的阈值将输出的概率值转换为二元分类的类别 这个阈值可以根据具体的需求调整。 4. 召回率 召回率Recall是分类模型评估指标之一尤其在 二元分类 问题中常用。召回率表示在所有实际为正例Positive的样本中模型正确识别出的正例样本的比例。 公式 三、代码 完整版代码和初步处理的数据集见文章绑定资源。 1. 导入所需包数据集 #数据分析与可视化包 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as pltplt.rcParams[font.sans-serif][SimHei] #用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False #用来正常显示负号from sklearn.model_selection import learning_curve, train_test_split from sklearn.preprocessing import StandardScaler, PolynomialFeatures from sklearn.linear_model import LogisticRegression #逻辑回归 from sklearn.metrics import roc_curve, auc, precision_recall_curve from sklearn.metrics import log_loss from sklearn.pipeline import make_pipelinefrom sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score #accuracy_score,准确率 #f1_score精确率和召回率的调和平均数 #precision_score精确率 #recall_score召回率from sklearn.metrics import confusion_matrix, classification_report #confusion_matrix混淆矩阵 #classification_report任务性能分析Titanic_datapd.read_csv(D:/project/Jupyter/csdn/AI_ML/datasets/Lesson3_Titanic.csv)Titanic_dataTitanic_data.info() 2. 数据预处理数据编码 2.1 数据预处理 # 将 float 类型转换为 int 类型 Titanic_data[Age] Titanic_data[Age].astype(int64) Titanic_data[Fare] Titanic_data[Fare].astype(int64)# 用众数填充 Embarked登船地点列缺失值 Titanic_data[Embarked].fillna(Titanic_data[Embarked].mode()[0], inplaceTrue)# 将 float 类型转换为 int 类型 Titanic_data[Embarked] Titanic_data[Embarked].astype(int64) 2.2 数据预处理编码Titanic dataset版可跳过 本部分是 Titanic dataset 的预处理相对完整。参考一下就行在 Titanic 数据集用不到。 # 填补缺失值 # Age年龄列用中位数填充Embarked登船地点列用众数填充 # 按乘客的票舱等级Pclass进行分组分别计算每个等级的均值填补 Fare票价列 Titanic_data[Age].fillna(Titanic_data[Age].median(), inplaceTrue) Titanic_data[Embarked].fillna(Titanic_data[Embarked].mode()[0], inplaceTrue) Titanic_data[Fare] Titanic_data.groupby(Pclass)[Fare].apply(lambda x: x.fillna(x.median()))# 将 非int或float 类型列进行编码变为 int 类型 # 将性别和登船港口编码为数值 Titanic_data[Sex] Titanic_data[Sex].map({male: 0, female: 1}) Titanic_data[Embarked] Titanic_data[Embarked].map({C: 0, Q: 1, S: 2})# 丢弃无用的列 Titanic_data.drop([Name, Ticket, Cabin], axis1, inplaceTrue)# 对 Age 和 Fare 列进行四舍五入并转换为 int64 型 Titanic_data[Age] Titanic_data[Age].round().astype(int64) Titanic_data[Fare] Titanic_data[Fare].round().astype(int64)# 查看处理后的数据 Titanic_data.head()Titanic_data.info() 由于 Name、 Ticket 列即 “姓名”、“票号” 列都是唯一的在判断乘客是否会遇难时无法起到帮助分析作用即可删去。 由于 Cabin 列即 “船舱号” 并无性质表现且缺失过多分析是可删去以免大量的填补数据干扰模型预测结果。 3. 绘制热力图 显示各个特征之间的相关性并显示不同特征之间的相关关系。观察数据各维度之间的相关性同时具有验证数据集可用性的功效如作者通过热力图发现 Titanic dataset 用不了。 plt.figure(figsize(10, 8)) sns.heatmap(Titanic_data.corr(), annotTrue, cmapcoolwarm) plt.title(Correlation Heatmap) plt.show() 4. 数据拆分标准化 # 特征选择 X Titanic_data.drop(Survived, axis1) y Titanic_data[Survived]# 拆分数据集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 标准化特征可选但推荐逻辑回归中进行特征缩放 scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) X_test_scaled scaler.transform(X_test) 5. 逻辑回归分类算法 # 使用 scikit-learn 的逻辑回归模型 model LogisticRegression(max_iter10000,penaltyl2,#C0.1,#solverliblinear,class_weightbalanced) model.fit(X_train, y_train)# 预测 y_pred_test model.predict(X_test) print(classification_report(y_test,y_pred_test))y_pred_train model.predict(X_train) print(classification_report(y_train,y_pred_train))confusion_matrix(y_train,y_pred_train)#生成混淆矩阵#画热力图 sns.heatmap(confusion_matrix(y_test,y_pred_test),annotTrue,fmtd)accuracy_score(y_pred_test,y_test)#准确率 f1_score(y_pred_test,y_test)#精确率和召回率的调和平均数# 从负类计算模型精确率和召回率 precision_score(y_pred_test,y_test,pos_label0)#精确率 recall_score(y_pred_test,y_test,pos_label0)#召回率print(model.coef_)print(model.intercept_)# 显示模型系数 coefficients pd.DataFrame(model.coef_.flatten(), indexX.columns, columns[Coefficient]) print(coefficients)pd.DataFrame(model.coef_,columnsX.columns).T.plot(kindbarh)#显示系数大小model.predict_proba(X_test)model.predict(X_test)# 从正类计算精确率和召回率 precision precision_score(y_test, y_pred_test,pos_label1) recall recall_score(y_test, y_pred_test,pos_label1)print(fPrecision: {precision}) print(fRecall: {recall}) 6. 绘制 PR / ROC 曲线 6.1 PR 曲线 显示模型在不同阈值下的精确率和召回率的权衡关系。 probsmodel.predict_proba(X_test)[:,0] precision,recall,thresholdsprecision_recall_curve(y_test,probs,pos_label0) plt.plot(recall,precision) plt.title(Precision-Recall Curve) plt.xlabel(recall) plt.ylabel(precision)pd.DataFrame([precision,recall,thresholds]) 6.2 ROC 曲线 probsmodel.predict_proba(X_test)[:,1] fpr,tpr,thresholdsroc_curve(y_test,probs,pos_label1) roc_auc auc(fpr, tpr) plt.plot(fpr,tpr, labelfROC curve (area {roc_auc:.2f})) plt.plot([0, 1], [0, 1], linestyle--) plt.title(roc_curve) plt.xlabel(fpr) plt.ylabel(tpr) plt.legend(loclower right) plt.show() AUC 在 0.8 到 0.9 之间表明模型具有良好的性能可以有效地区分正例和负例。
http://www.w-s-a.com/news/116588/

相关文章:

  • 外贸网站商城建设做网站和推广
  • 网站建设微信群免费简约ppt模板
  • 哈尔滨网站设计公司哪家更好shopify和wordpress
  • 岚县网站建设网站建设中效果
  • 网站建设软文推广网站建设分金手指排名十四
  • 网站建设要什么知识广州注册公司地址怎么解决
  • 自己可以做开奖网站吗wordpress和hexo
  • 成都网站关键词优化wordpress价格
  • 网站开发后端站建设 app开发网站
  • 毕业设计做网站好的想法开发网站代码量
  • 西宁网站建设排名wordpress的站点地址如何配置
  • 医院网站建设 价格app和网站开发的成本
  • 常见的网站开发工具山东建设厅官方网站李兴军
  • 二级院系网站建设情况做网站域名是什么意思
  • 网站开发双语辽宁省建设厅网站怎样下载表格
  • 网站后台密码怎么修改百度查重免费入口
  • 衡阳网站页面设计公司绍兴网站设计
  • 青岛手机建站多少钱做图表的网站 免费
  • 如何去建立和设计一个公司网站开封建设教育协会网站
  • 南充市住房和城乡建设局考试网站wordpress 下载模板站
  • 有没有单纯做旅游攻略的网站保定建站方案
  • 2017网站建设报价方案2022年企业所得税税率表一览
  • 可以做婚礼视频的网站有哪些工程公司管理制度
  • 做农产品网站需要做的准备中文手机网站设计案例
  • 福州做网站软件seo搜索优化专员招聘
  • 建站技术博客wordpress响应时间
  • 农业网站模板WordPress安徽省建设工程造价管理协会网站
  • 网站后台策划书破解版手游app平台
  • 宿迁网站建设介绍公司wordpress 文章 分类 页面
  • 建设通同类网站网站设计公司种类