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

域名及网站建设实训设计网页的详细步骤

域名及网站建设实训,设计网页的详细步骤,网站建设中国十强,wordpress访问很慢吗?文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例#xff1a;癌症分类预测致谢 逻辑回归为什么用Sigmoid#xff1f; - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称… 文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例癌症分类预测致谢 逻辑回归为什么用Sigmoid - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称为逻辑斯蒂回归(Logistic Regression)虽被称为回归但是其实际上是统计学习中经典的分类方法。 逻辑回归常常被用于二分类问题比较常见的有 判断一封电子邮件是否是垃圾邮件判断一次金融交易是否是欺诈区别一个肿瘤是恶性的还是良性的 我们将因变量可能属于的两个类分别称为负向类和正向类则因变量y∈01。其中0表示负向类1表示正向类。实际上哪个是正向类哪个是负向类其实并不重要。虽然没有特别界限但是我们通常把0归结为没有而1归结为具有我们要寻找的东西。 11.1 引入 对于二分类问题y取值非0即1但如果你使用的是线性回归那么其输出的y^\hat yy^​可能远远大于1或者为负数。所以如果我们用线性回归来做分类效果实际上是很差的。 逻辑回归是怎么把输出变成0到1之间的呢实际上它拿线性回归的输出作为输入然后用函数g(x)11e−xg(x) \frac {1}{1e^{-x}}g(x)1e−x1​输出其输出值可以把线性回归的结果投射到0和1的区间上。 11.2 激活函数 上面我们说到将线性回归的输出输入到一个函数上再输出这样能够使结果投射到0-1的区间上。在深度学习中我们常常把这类可以将线性回归的结果投射到某个区间函数叫做激活函数而上面提到的我们通常称为sigmoid激活函数在深度学习中我们会陆续见到其他的激活函数。 实际上为何逻辑回归要用sigmoid函数来投射线性回归的结果是有原理的如果感兴趣可以去网上搜索相关推导如果我不懒后续也会手推但是你现在需要知道的一点是——当因变量服从伯努利分布(0-1分布)时广义线性模型就为逻辑回归。 实际上逻辑回归用于二分类问题而其实际上是softmax回归的特殊情况softmax回归常常用来解决多分类问题在后续深度学习的文章中我们会持续了解它们。 让我们看一下sigmoid激活函数长什么样吧 import matplotlib.pyplot as plt import math import numpy as np import matplotlibmatplotlib.rcParams[font.family] SimHei matplotlib.rcParams[axes.unicode_minus] False# 1 准备数据 def func(x):y 1 / (1 math.exp(-x))return yX np.linspace(-100, 100, 200) Y [func(x) for x in X] # 2 创建画布 plt.figure()plt.grid(True, linestyle--, alpha0.5)# 3 画图 plt.plot(X, Y)# 4 设置标题 plt.title(sigmoid函数图像)# 5 释放图像 plt.show() out 实际使用中我们默认分类的界限是0.5也就是说经由sigmoid函数投射值如果大于0.5则直接分为1类否则分为0类。 11.3 损失函数 记得我们前面谈到线性回归的损失函数吗由于线性回归属于回归问题所以输出是某一个预测值我们拿预测值和真实值进行比对来衡量其误差这个比对方式我们用的是平方损失函数。但是在逻辑回归中我们并不能继续这么做了因为逻辑回归非0即1你还拿平方损失函数比对其误差如果没有误差那不就是0吗这还搞啥子我们后面还要采用梯度下降呢参数不动这模型还怎么优化。 为此我们急需有一个新的损失函数来取代之前的平方损失函数。在逻辑回归中我们常常使用对数似然损失函数来衡量损失。其公式为 cost(h0(x),y){−log⁡(h0(x))ify1−log⁡(1−h0(x))ify0cost(h_0(x),y) \left\{ \begin{aligned} -\log(h_0(x)) if y 1\\ -\log(1-h_0(x)) if y 0 \end{aligned} \right. cost(h0​(x),y){−log(h0​(x))−log(1−h0​(x))​​ifif​​y1y0​ 当y 1时我们可以观察其函数图像如下所示 明显地如果h0(x)h_0(x)h0​(x)越接近1而我们y 1那么说明我们分类地越准确。 同理当y 0时我们也可以观察其图像如下所示 当h0(x)h_0(x)h0​(x)越接近于1而我们y 0说明我们分类的很差损失很大。 为了后续计算梯度下降方便我们必须对上述的分段函数做一个简化。为此我们将其形式改写为 cost(h0(x),y)∑i1m−yilog(h0(x))−(1−yi)log(1−h0(x))cost(h_0(x),y) \sum^m_{i 1}-y_ilog(h_0(x))-(1-y_i)log(1-h_0(x)) cost(h0​(x),y)i1∑m​−yi​log(h0​(x))−(1−yi​)log(1−h0​(x)) 这个公式的好处在于当你的y取1那么−yilog(h0(x))-y_ilog(h_0(x))−yi​log(h0​(x))会保留后面一部分会为0这样就等同于上面的分段函数当你的y取0同理−yilog(h0(x))-y_ilog(h_0(x))−yi​log(h0​(x))会为0后面一部分保留。 11.4 梯度下降 同样地我们在打基础阶段还是照样使用梯度下降来优化损失函数从而找到逻辑回归中的权重参数。 除了梯度下降算法以外还有一些常被用来令代价函数最小的算法这些算法更加复杂和优越而且通常不需要人工选择学习率通常比梯度下降算法要更加快速。这些算法有共轭梯度(Conjugate Gradient)局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS)。 11.5 案例癌症分类预测 让我们来看看sklearn为我们提供的API。 sklearn.linear_model.LogisticRegression(solver ‘liblinear’,penalty ‘l2’,C 1.0) solver优化求解方式。默认使用开源的liblinear库实现优化内部使用了坐标轴下降法来迭代优化损失函数penalty正则化种类C正则化力度 在之前的学习中我们一直用着sklearn自带的数据集。是的它们是好用这仅仅只是因为人家帮你预处理好了他在帮你偷懒所以我想你是时候学着处理一些东西了。 我们先去UCI把我们要用到的数据集下载下来或者你也可以不下载直接利用pandas读取网站即可索引 /ml/机器学习数据库/乳腺癌-威斯康星州 (uci.edu) 其中数据放于http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data 而数据介绍放于http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.names 我们先来读取数据。由于原始数据是没有标签的所以我们顺便给数据打上标签。 import pandas as pd import numpy as np# 1 读取数据 path http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data colum_name [Sample code number, Clump Thickness,Uniformity of Cell Size, Uniformity of Cell Shape,Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei,Bland Chromatin, Normal Nucleoli, Mitoses, Class] data pd.read_csv(path, namescolum_name)从原数据集上看数据中有我们在数据预处理中通常先将其替换为NaN然后进行删除。如果你喜欢填充往?部分填充均值也是可以的。 # 2 缺失值处理 data data.replace(to_replace ?,value np.nan) data.dropna(inplace True)处理完成后我们可以通过直接查看数据看看是否处理成功也可以通过ifnull()函数查看是否还有空值。 pd.set_option(display.max_rows, None) # 显示所有行 datadata.isnull().any()看到没有空值后我们下一步要对原始数据集进行特征和分类标签的分离。 # 3 划分数据集 from sklearn.model_selection import train_test_split# 筛选特征值和目标值 x data.iloc[:,1:-1] y data[Class] x.head()然后进行切割数据集。 # 划分数据集 x_train,x_test,y_train,y_test train_test_split(x,y) x_train.head()逻辑回归本质上属于广义线性模型所以我们还要进行一下标准化。 # 4 标准化 from sklearn.preprocessing import StandardScaler transfer StandardScaler() x_train transfer.fit_transform(x_train) x_test transfer.transform(x_test) x_train标准化完成后我们调用逻辑回归预估器进行模型的训练 # 5 逻辑回归 from sklearn.linear_model import LogisticRegression estimator LogisticRegression() estimator.fit(x_train,y_train)我们可以看一下训练后的回归系数和偏置。 # 回归系数和偏置 estimator.coef_estimator.intercept_最后我们对模型进行评估。 # 6 模型评估 y_predict estimator.predict(x_test) print(y_predict:\n,y_predict) print(直接比对真实值和与预测值\n,y_test y_predict)score estimator.score(x_test,y_test) print(准确率为\n,score)
http://www.yutouwan.com/news/153783/

相关文章:

  • 做国外零售做什么网站查钓鱼网站
  • 秦皇岛市 网站建设深圳网站建设有免费的吗
  • 网站做的好的玩具公司网站设计论文
  • 驻马店网站建设手工视频制作网站
  • 江苏南京建设工程信息网站网站群建设优点
  • 人力资源网站建设方案专门做奢侈品的网站
  • 网页设计类网站做网站的品牌公司有哪些
  • 门户类型网站有哪些网站负责人半身照
  • 网站栏目规划怎么写互联网舆情监控系统
  • 我们的网站正在建设之中0基础12天精通网站建设
  • 服饰网站模板长沙诚信做网站
  • 网站建设公司专业网站开发制作浙江省建设职业注册中心网站
  • 重庆网站建设加q.479185700wordpress用户头像插件
  • 幻灯片在什么网站做百度站长seo
  • 应聘网站开发题目做外贸的物流网站
  • 个人接单做网站的平台怎么用PHP做网站留言板
  • 佟年帮韩商言做网站是第几集浙江省住房和城乡建设信息网
  • 品牌网站设计流程北京道路优化
  • 色一把做最好的看片网站湖南营销型网站建设 要上磐石网络
  • 滨江网站制作Wordpress 图片左右滑动
  • 家居企业网站建设渠道网站打不开 ...
  • 创建个人网站教程国内crm系统哪家好
  • 做网站哪好网站开发采用的技术方案说明
  • 自贡建设网站golang和wordpress
  • 有哪些官网做的比较好的网站班服定制网站
  • 灰系网站flash网站建设技术是什么
  • 腾冲做兼职的网站网页制作和网页制作技术
  • 青海网站建设推广广州总承包建筑集团有限公司
  • 英文网站建设的原因住建厅官网证件查询
  • 壶关网站建设免费的行情网站app