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

哪家网站建设建设银行网上银行网站进入不了

哪家网站建设,建设银行网上银行网站进入不了,编辑图片的软件,网站建设 投资预算第1关#xff1a;逻辑回归核心思想 任务描述 本关任务#xff1a;根据本节课所学知识完成本关所设置的编程题。 相关知识 为了完成本关任务#xff0c;你需要掌握#xff1a; 什么是逻辑回归#xff1b; sigmoid函数。 什么是逻辑回归 当一看到“回归”这两个字逻辑回归核心思想 任务描述 本关任务根据本节课所学知识完成本关所设置的编程题。 相关知识 为了完成本关任务你需要掌握 什么是逻辑回归 sigmoid函数。 什么是逻辑回归 当一看到“回归”这两个字可能会认为逻辑回归是一种解决回归问题的算法然而逻辑回归是通过回归的思想来解决二分类问题的算法。 那么问题来了回归的算法怎样解决分类问题呢其实很简单逻辑回归是将样本特征和样本所属类别的概率联系在一起假设现在已经训练好了一个逻辑回归的模型为 f(x) 模型的输出是样本 x 的标签是 1 的概率则该模型可以表示 p^​f(x) 。若得到了样本 x 属于标签 1 的概率后很自然的就能想到当 p^​0.5 时 x 属于标签 1 否则属于标签 0 。所以就有 y^​{01​p^​0.5p^​0.5​ (其中 y^​ 为样本 x 根据模型预测出的标签结果标签 0 和标签 1 所代表的含义是根据业务决定的比如在癌细胞识别中可以使 0 代表良性肿瘤 1 代表恶性肿瘤)。 由于概率是 0 到 1 的实数所以逻辑回归若只需要计算出样本所属标签的概率就是一种回归算法若需要计算出样本所属标签则就是一种二分类算法。 那么逻辑回归中样本所属标签的概率怎样计算呢其实和线性回归有关系学习了线性回归的同学肯定知道线性回归无非就是训练出一组参数 WT 和 b 来拟合样本数据线性回归的输出为 y^​WTxb 。不过 y^​ 的值域是 (−∞,∞) 如果能够将值域为 (−∞,∞) 的实数转换成 (0,1) 的概率值的话问题就解决了。要解决这个问题很自然地就能想到将线性回归的输出作为输入输入到另一个函数中这个函数能够进行转换工作假设函数为 σ 转换后的概率为 p^​ 则逻辑回归在预测时可以看成p^​σ(WTxb) 。 σ 其实就是接下来要介绍的sigmoid函数。 sigmoid 函数 sigmoid函数的公式为 σ(t)1/(1e−t) 函数图像如下图所示 从sigmoid函数的图像可以看出当 t 趋近于 −∞ 时函数值趋近于 0 当 t 趋近于 ∞ 时函数值趋近于 1 。可见sigmoid函数的值域是 (0,1) 满足我们要将 (−∞,∞) 的实数转换成 (0,1) 的概率值的需求。因此逻辑回归在预测时可以看成 p^​1/(1e−WTxb) 编程要求 根据提示在右侧编辑器补充 Python 代码实现sigmoid函数。底层代码会调用您实现的sigmoid函数来进行测试。(提示: numpy.exp()函数可以实现 e 的幂运算) 测试说明 测试用例 输入1 预期输出0.73105857863 输入-2 预期输出0.119202922022 #encodingutf8 import numpy as npdef sigmoid(t):完成sigmoid函数计算:param t: 负无穷到正无穷的实数:return: 转换后的概率值:可以考虑使用np.exp()函数#********** Begin **********#return 1.0/(1np.exp(-t))#********** End **********# 第2关逻辑回归的损失函数 任务描述 本关任务根据本节课所学知识完成本关所设置的选择题。 相关知识 为什么需要损失函数 训练逻辑回归模型的过程其实与之前学习的线性回归一样就是去寻找合适的 WT 和 b 使得模型的预测结果与真实结果尽可能一致。所以就需要一个函数能够衡量模型拟合程度的好坏也就是说当模型拟合误差越大的时候函数值应该比较大反之应该比较小这就是损失函数。 逻辑回归的损失函数 根据上一关中所学习到的知识我们已经知道了逻辑回归计算出的样本所属类别的概率 p^​σ(WTxb) 样本所属列表的判定条件为 y^​{01​p^​0.5p^​0.5​ 很明显在预测样本属于哪个类别时取决于算出来的p^​。从另外一个角度来说假设现在有一个样本的真实类别为 1 模型预测样本为类别 1 的概率为 0.9 的话就意味着这个模型认为当前样本的类别有 90% 的可能性为 1 有 10% 的可能性为0。所以从这个角度来看逻辑回归的损失函数与 p^​ 有关。 当然逻辑回归的损失函数不仅仅与 p^​ 有关它还与真实类别有关。假设现在有两种情况情况A现在有个样本的真实类别是 0 但是模型预测出来该样本是类别 1 的概率是 0.7 也就是说类别 0 的概率为 0.3 情况B现在有个样本的真实类别是 0 但是模型预测出来该样本是类别 1 的概率是 0.6 也就是说类别 0 的概率为 0.4 请你思考 2 秒钟AB两种情况哪种情况的误差更大很显然情况A的误差更大因为情况A中模型认为样本是类别 0 的可能性只有 30% 而B有 40% 。 假设现在又有两种情况情况A现在有个样本的真实类别是 0 但是模型预测出来该样本是类别 1 的概率是 0.7 也就是说类别 0 的概率为 0.3 情况B现在有个样本的真实类别是 1 但是模型预测出来该样本是类别 1 的概率是 0.3 也就是说类别 0 的概率为 0.7 请你再思考 2 秒钟AB两种情况哪种情况的误差更大很显然一样大 所以逻辑回归的损失函数如下其中 cost 表示损失函数的值 y 表示样本的真实类别 cost−ylog(p^​)−(1−y)log(1−p^​) 这个式子其实很好理解当样本的真实类别为 1 时式子就变成了 cost−log(p^​)。此时函数图像如下 从图像能看出当样本的真实类别为1的前提下p^​ 越大损失函数值就越小。因为 p^​ 越大就越说明模型越认为该样本的类别为 1 。 当样本的真实类别为 0 时式子就变成了 cost−log(1−p^​) 。此时函数图像如下 从图像能看出当样本的真实类别为 0 的前提下hatp 越大损失函数值就越大。因为 p^​ 越大就越说明模型越认为该样本的类别为 1 。 cost−ylog(p^​)−(1−y)log(1−p^​) 是一个样本的损失计算公式但是在一般情况下需要计算的是 m 条样本数据的平均损失值所以损失函数的最终形态如下其中 m 表示数据集中样本的数量 i 表示数据集中第 i 个样本 cost−m1​sumi0m​y(i)log(p^​(i))−(1−y(i))log(1−p^​(i)) 知道了逻辑回归的损失函数之后逻辑回归的训练流程就很明显了就是寻找一组合适的 WT 和 b 使得损失值最小。找到这组参数后模型就确定下来了。 编程要求 根据相关知识按照要求完成右侧选择题任务包含单选题和多选题。 测试说明 平台会对你选择的答案进行判断全对则通过测试。 1、逻辑回归的损失函数可以写成如下形式 (A)^ −log( p ) y1 cost{ ^−log(1− p y0A、对 B、错2、下列说法正确的是 (A、C、D) A、损失值能够衡量模型在训练数据集上的拟合程度 B、sigmoid函数不可导 C、sigmoid函数的输入越大输出就越大 D、训练的过程就是寻找合适的参数使得损失函数值最小的过程3、sigmoid函数(对数几率函数)相对于单位阶跃函数有哪些好处 (A、B) A、sigmoid函数可微分 B、sigmoid函数处处连续 C、sigmoid函数不是单调的 D、sigmoid函数最多计算二阶导4、逻辑回归的优点有哪些 (D) A、需要事先对数据的分布做假设 B、可以得到“类别”的真正的概率预测 C、可以用闭式解求解 D、可以用现有的数值优化算法求解 第3关梯度下降 任务描述 本关任务用 Python 构建梯度下降算法并求取目标函数最小值。 相关知识 为了完成本关任务你需要掌握梯度下降算法。 什么是梯度 梯度梯度的本意是一个向量由函数对每个参数的偏导组成表示某一函数在该点处的方向导数沿着该方向取得最大值即函数在该点处沿着该方向变化最快变化率最大。 梯度下降算法原理 算法思想梯度下降是一种非常通用的优化算法能够为大范围的问题找到最优解。梯度下降的中心思想就是迭代地调整参数从而使损失函数最小化。假设你迷失在山上的迷雾中你能感觉到的只有你脚下路面的坡度。快速到达山脚的一个策略就是沿着最陡的方向下坡。这就是梯度下降的做法通过测量参数向量 θ 相关的损失函数的局部梯度并不断沿着降低梯度的方向调整直到梯度降为 0 达到最小值。 梯度下降公式如下 对应到每个权重公式为 其中 η 为学习率是 0 到 1 之间的值是个超参数需要我们自己来确定大小。 算法原理 在传统机器学习中损失函数通常为凸函数假设此时只有一个参数则损失函数对参数的梯度即损失函数对参数的导数。如果刚开始参数初始在最优解的左边 很明显这个时候损失函数对参数的导数是小于 0 的而学习率是一个 0 到 1 之间的数此时按照公式更新参数初始的参数减去一个小于 0 的数是变大也就是在坐标轴上往右走即朝着最优解的方向走。同样的如果参数初始在最优解的右边 此时按照公式更新参数将会朝左走即最优解的方向。所以不管刚开始参数初始在何位置按着梯度下降公式不断更新参数都会朝着最优解的方向走。 #####梯度下降算法流程 随机初始参数确定学习率求出损失函数对参数梯度按照公式更新参数重复 3 、 4 直到满足终止条件如损失函数或参数更新变化值小于某个阈值或者训练次数达到设定阈值。 编程要求 根据提示使用 Python 实现梯度下降算法并损失函数最小值时对应的参数thetatheta会返回给外部代码由外部代码来判断theta是否正确。 测试说明 损失函数为loss2∗(θ−3) 最优参数为3.0 你的答案跟最优参数的误差低于0.0001才能通关。 # -*- coding: utf-8 -*-import numpy as np import warnings warnings.filterwarnings(ignore)def gradient_descent(initial_theta,eta0.05,n_iters1000,epslion1e-8):梯度下降:param initial_theta: 参数初始值类型为float:param eta: 学习率类型为float:param n_iters: 训练轮数类型为int:param epslion: 容忍误差范围类型为float:return: 训练后得到的参数# 请在此添加实现代码 ##********** Begin *********#theta initial_thetai_iter 0while i_iter n_iters:gradient 2*(theta-3)last_theta thetatheta theta - eta*gradientif(abs(theta-last_theta)epslion):breaki_iter 1return theta#********** End **********# 第4关动手实现逻辑回归 - 癌细胞精准识别 任务描述 本关任务使用逻辑回归算法建立一个模型并通过梯度下降算法进行训练得到一个能够准确对癌细胞进行识别的模型。 相关知识 为了完成本关任务你需要掌握 逻辑回归算法流程逻辑回归中的梯度下降。 数据集介绍 乳腺癌数据集其实例数量是 569 实例中包括诊断类和属性帮助预测的属性一共 30 个各属性包括为 radius 半径从中心到边缘上点的距离的平均值 texture 纹理灰度值的标准偏差等等类包括 WDBC-Malignant 恶性和 WDBC-Benign 良性。用数据集的 80% 作为训练集数据集的 20% 作为测试集训练集和测试集中都包括特征和类别。其中特征和类别均为数值类型类别中 0 代表良性 1 代表恶性。 构建逻辑回归模型 由数据集可以知道每一个样本有 30 个特征和 1 个标签而我们要做的事就是通过这 30 个特征来分析细胞是良性还是恶性(其中标签 y0 表示是良性 y1 表示是恶性)。逻辑回归算法正好是一个二分类模型我们可以构建一个逻辑回归模型来对癌细胞进行识别。模型如下 zbw1​x1​w2​x2​...wn​xn​ y1e−z1​ 其中 xi​表示第 i 个特征wi​表示第 i 个特征对应的权重b表示偏置。 为了方便我们稍微将模型进行变换 zw0​x0​w1​x1​w2​x2​...wn​xn​ 其中x0​等于 1 。 Zheta.X heta(w0​,w1​,...,wn​) X(1,x1​,...,xn​) y1e−θ.X1​ 我们将一个样本输入模型如果预测值大于等于 0.5 则判定为 1 类别如果小于 0.5 则判定为 0 类别。 训练逻辑回归模型 我们已经知道如何构建一个逻辑回归模型但是如何得到一个能正确对癌细胞进行识别的模型呢通常我们先将数据输入到模型从而得到一个预测值再将预测值与真实值结合得到一个损失函数最后用梯度下降的方法来优化损失函数从而不断的更新模型的参数 θ 最后得到一个能够正确对良性细胞和癌细胞进行分类的模型。 在上一节中我们知道要使用梯度下降算法首先要知道损失函数对参数的梯度即损失函数对每个参数的偏导求解步骤如下 loss−ylna−(1−y)ln(1−a) ∂w∂loss​∂a∂loss​.∂z∂a​.∂w∂z​ ∂a∂loss​−ay​−1−a1−y​(−1)a(1−a)a−y​ ∂z∂a​(1e−z)2e−z​a.(1−a) ∂w∂z​x ∂w∂loss​(a−y)x 其中a为预测值y为真实值。 于是在逻辑回归中的梯度下降公式如下 wi​wi​−η(a−y)xi​ 训练流程 同梯度下降算法流程请参见上一关卡。 编程要求 根据提示在右侧编辑器Begin-End处补充 Python 代码构建一个逻辑回归模型并对其进行训练最后将得到的逻辑回归模型对癌细胞进行识别。 测试说明 只需返回预测结果即可程序内部会检测您的代码预测正确率高于 95% 视为过关。 提示构建模型时 x0​ 是添加在数据的左边请根据提示构建模型,且返回theta形状为(n,)n为特征个数。 # -*- coding: utf-8 -*-import numpy as np import warnings warnings.filterwarnings(ignore)def sigmoid(x):sigmoid函数:param x: 转换前的输入:return: 转换后的概率return 1/(1np.exp(-x))def fit(x,y,eta1e-3,n_iters10000):训练逻辑回归模型:param x: 训练集特征数据类型为ndarray:param y: 训练集标签类型为ndarray:param eta: 学习率类型为float:param n_iters: 训练轮数类型为int:return: 模型参数类型为ndarray# 请在此添加实现代码 ##********** Begin *********#theta np.zeros(x.shape[1])i_iter 0while i_iter n_iters:gradient (sigmoid(x.dot(theta))-y).dot(x)theta theta -eta*gradienti_iter 1return theta#********** End **********# 第5关手写数字识别 任务描述 本关任务使用sklearn中的LogisticRegression类完成手写数字识别任务。 相关知识 为了完成本关任务你需要掌握如何使用sklearn提供的LogisticRegression类。 数据简介 本关使用的是手写数字数据集该数据集有 1797 个样本每个样本包括 8*8 像素实际上是一条样本有 64 个特征每个像素看成是一个特征每个特征都是float类型的数值的图像和一个 [0, 9] 整数的标签。比如下图的标签是 2 sklearn为该数据集提供了接口若想使用该数据集代码如下 from sklearn import datasetsimport matplotlib.pyplot as plt#加载数据集digits datasets.load_digits()#X表示图像数据y表示标签X digits.datay digits.target#将第233张手写数字可视化plt.imshow(digits.images[232]) LogisticRegression LogisticRegression中默认实现了 OVR 因此LogisticRegression可以实现多分类。LogisticRegression的构造函数中有三个常用的参数可以设置 solver{newton-cg , lbfgs, liblinear, sag, saga} 分别为几种优化算法。默认为liblinear C正则化系数的倒数默认为 1.0 越小代表正则化越强 max_iter最大训练轮数默认为 100 。 和sklearn中其他分类器一样LogisticRegression类中的fit函数用于训练模型fit函数有两个向量输入 X大小为 [样本数量,特征数量] 的ndarray存放训练样本 Y值为整型大小为 [样本数量] 的ndarray存放训练样本的分类标签。 LogisticRegression类中的predict函数用于预测返回预测标签predict函数有一个向量输入 X大小为[样本数量,特征数量]的ndarray存放预测样本。 LogisticRegression的使用代码如下 logreg LogisticRegression(solverlbfgs,max_iter 10,C10)logreg.fit(X_train, Y_train)result logreg.predict(X_test) 编程要求 填写digit_predict(train_sample, train_label, test_sample)函数完成手写数字识别任务其中 train_image训练集图像类型为ndarrayshape[-1, 8, 8] train_label训练集标签类型为ndarray test_image测试集图像类型为ndarray。 测试说明 只需返回预测结果即可程序内部会检测您的代码预测正确率高于 0.97 视为过关。 from sklearn.linear_model import LogisticRegressiondef digit_predict(train_image, train_label, test_image):实现功能训练模型并输出预测结果:param train_sample: 包含多条训练样本的样本集类型为ndarray,shape为[-1, 8, 8]:param train_label: 包含多条训练样本标签的标签集类型为ndarray:param test_sample: 包含多条测试样本的测试集类型为ndarry:return: test_sample对应的预测标签#************* Begin ************#flat_train_image train_image.reshape((-1, 64))# 训练集标准化train_min flat_train_image.min()train_max flat_train_image.max()flat_train_image (flat_train_image-train_min)/(train_max-train_min)# 测试集变形flat_test_image test_image.reshape((-1, 64))# 测试集标准化test_min flat_test_image.min()test_max flat_test_image.max()flat_test_image (flat_test_image - test_min) / (test_max - test_min)# 训练--预测rf LogisticRegression(C4.0)rf.fit(flat_train_image, train_label)return rf.predict(flat_test_image)#************* End **************#
http://www.pierceye.com/news/146672/

相关文章:

  • 新衡阳网站游戏软件开发公司简介
  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设
  • 园林建设网站营销型网站的建站步骤是什么意思
  • 招聘求职网站html模板正规的创业商机网
  • 预付网站建设费会计处理哪里建网站好
  • 做免费网站艺术学院网站建设管理办法
  • 做网站贵吗手机网站wap
  • linux建立网站做网站的应该怎么发广告
  • wordpress使用端口百度seo排名软
  • 用英文字母做网站关键词个人网站的设计与实现专业论文图像处理工具
  • 重庆企业网站推广流程php网站开发技术训练心得
  • 汽车销售网站学校建网站
  • 两台电脑一台做服务器 网站潍坊专业网站建设多少钱
  • 青岛科技街网站建设安徽 网站开发
  • 黑糖不苦建设的网站wordpress获取文章图片不显示
  • 美食网站建设的功能免费做简历的网站
  • 网站建设公司谁管手机如何创建网站
  • 可以自己做网站优化吗最好用的wordpress主题
  • 瓜子二手车网站开发智慧团建注册登记入口
  • 青岛网站开发建设安阳市商祺网络有限责任公司
  • 自己怎么做装修网站网站建设设计岗位职责
  • php语言 网站建设投资2 3万小生意
  • 全美网站开发微转app是用网站做的吗
  • 禹州 什么团购网站做的好广州网站建设程序开发
  • 成都市微信网站建设公司专业app开发
  • 郑州网站建设hndream神木网站设计公司
  • 关于网站集约化建设的讲话抓取网站访客qq号码
  • 南昌住房城市建设支行官方网站海洋网络提供网站建设