天池 机器学习算法(一): 基于逻辑回归的分类预测

pytorch实战

课时7 神经网络
  1. MSE的缺点:偏导值在输出概率值接近0或者接近1的时候非常小,这可能会造成模型刚开始训练时,偏导值几乎消失,模型速度非常慢。

  2. 交叉熵损失函数:平方损失则过于严格,需要使用更合适衡量两个概率分布差异的测量函数。
    使用逻辑函数得到概率,并结合交叉熵当损失函数时,在模型效果差的时候学习速度比较快,在模型效果好的时候学习速度变慢。

  3. torch.randint(0,2,(10,))
    报错:torch.randint(0,2,(10))必须要有逗号

  4. x.view()相当于reshape。x.view((-1, 4))当第一个参数为-1时,自动调整为n行4列的张量

  5. 写模型时需要注意:

    • super(LinearNet,self).init()
    • forward(self, X):
  6. 查看模型参数:net.state_dict()

机器学习算法(一): 基于逻辑回归的分类预测

天池学习地址

逻辑回归使用交叉熵作为损失函数,我理解的步骤为:

  1. 初始化w和b,计算所有点的y值。
  2. 利用sigmoid函数将y值转化为属于某一类的概率
  3. 利用交叉熵损失,希望损失最小,不断更新w和b

下面是天池的具体内容:

# 可视化决策边界
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis') # 绘制三点图
plt.title('Dataset')# x割裂成200份,y为100,生成网格矩阵,存储网格矩阵的点,20000个点。画图的时候,不需要一定按照x和y的坐标,使用网格坐标也可
nx, ny = 200, 100
x_min, x_max = plt.xlim()
y_min, y_max = plt.ylim() # 边界的大小
x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx),np.linspace(y_min, y_max, ny)) #x_grid, y_grid的大小都是100*200,计数是从左下到右上# 根据网格矩阵,也就是有20000个点,计算每个点分别为1类和2类的概率,z_proba的结果
''' array([[0.98401648, 0.01598352],[0.98362875, 0.01637125],[0.98323179, 0.01676821],...,[0.01094403, 0.98905597],[0.01068344, 0.98931656],[0.01042899, 0.98957101]]) '''
z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()]) # ravel()将二维合成一维
z_proba = z_proba[:, 1].reshape(x_grid.shape) # 此时z_proba是对应的类别1的预测概率
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue') # 绘制等高线的函数,例如画一座山。XY的坐标,和山的高度plt.show()

下面是分析iris数据集的一般步骤:

  1. 数据集的读取,转化为pandas元素

    iris_target = data.target #得到数据对应的标签
    iris_features = pd.DataFrame(data=data.data, columns=data.feature_names) #利用Pandas转化为DataFrame格式
    
  2. 查看数据集的基本信息:

    # 这些函数是pandas的,所以数据格式为Series和DataFrame
    ## 利用.info()查看数据的整体信息
    iris_features.info()
    ## 进行简单的数据查看,我们可以利用 .head() 头部.tail()尾部
    iris_features.head()
    iris_features.tail()
    ## 其对应的类别标签为,其中0,1,2分别代表'setosa', 'versicolor', 'virginica'三种不同花的类别。
    iris_target
    ## 利用value_counts函数查看每个类别数量
    pd.Series(iris_target).value_counts()
    ## 对于特征进行一些统计描述
    iris_features.describe()
    
  3. 可视化描述:散点和箱线图

    ## 特征与标签组合的散点可视化
    sns.pairplot(data=iris_all,diag_kind='hist', hue= 'target')
    plt.show()
    ## 箱线图
    for col in iris_features.columns:sns.boxplot(x='target', y=col, saturation=0.5,palette='pastel', data=iris_all)plt.title(col)plt.show()
  4. 利用模型进行训练:划分数据集,定义模型,模型训练,打印参数

    ## 划分数据集
    from sklearn.model_selection import train_test_split
    x_train, x_test, y_train, y_test = train_test_split(iris_features_part, iris_target_part, test_size = 0.2, random_state = 2020)
    ## 模型训练
    from sklearn.linear_model import LogisticRegression
    clf = LogisticRegression(random_state=0, solver='lbfgs')
    clf.fit(x_train, y_train)
    clf.coef_
    clf.intercept_
    
  5. 利用模型进行测试,可视化测试结果:预测结果和概率,计算混淆矩阵,利用矩阵和热力图可视化

    ## 测试结果是一个array,类别和概率分别如下
    test_predict = clf.predict(x_test)
    test_predict_proba = clf.predict_proba(x_test)
    ## 正确率计算
    from sklearn import metrics
    print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))
    ## 查看混淆矩阵
    confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
    # 利用热力图对于结果进行可视化
    plt.figure(figsize=(8, 6))
    sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
    plt.xlabel('Predicted labels')
    plt.ylabel('True labels')
    plt.show()
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/162356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开始通过 Amazon SageMaker JumpStart 在亚马逊云科技上使用生成式 AI

目前,生成式 AI 正受到公众的广泛关注,人们围绕着许多人工智能技术展开讨论。很多客户一直在询问有关亚马逊云科技生成式 AI 解决方案的更多信息,本文将为您进行解答。 这篇文章通过一个真实的客户使用案例概述了生成式 AI,提供了…

感恩节99句祝福语,感恩父母老师朋友亲人朋友们,永久快乐幸福

1、流星让夜空感动,生死让人生感动,爱情让生活感动,你让我感动,在感恩节真心祝福你比所有的人都开心快乐。 2、感恩节到了,想问候你一下,有太多的话语想要说,但是不知从何说起,还是用…

定位鼠标悬浮才出现的元素

第一步:按F12进入开发者模式 第二步:点击Sources. 第三步:鼠标进入,触发悬浮框弹出,然后鼠标停止不要移动。 第四步:按F8 或者(Ctrl\),正常情况下,此时页…

让SOLIDWORKS Composer动画在PPT中随意转换

SOLIDWORKS Composer作为一款易学易用的技术图解软件,非常适合用来给客户展示自己的产品。这里我们教大家如何将Composer文件插入大PPT中,并任意切换文件,用以给客户展示不用的方案和产品。 1.首先大家要安装SOLIDWORKS Composer Player 这个…

【2021集创赛】基于ARM-M3的双目立体视觉避障系统 SOC设计

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位:上海电力大学 队伍名称:骇行队 总决赛奖项:二等奖 1.摘要 随着信息技术的发展,AGV(Automated Guided Vehic…

21款奔驰GLC260L升级HUD抬头显示 平视仪表信息

随着科技飞速地发展,从汽车领域就可以看出,尤其是汽车的抬头显示器,一经推出就吸引了很多的车主。 升级HUD抬头显示,HUD与汽车系统进行完整的数据信息连接,整合成大数据,然后将一些重要信息映射到车窗玻璃…

中低压MOSFET 2N7002W 60V 300mA 双N通道 SOT-323封装

2N7002W小电流双N通道MOSFET,电压60V电流300mA,采用SOT-323封装形式。超高密度电池设计,适用于极低的ros (on),具有导通电阻和最大直流电流能力,ESD保护。可应用于笔记本中的电源管理,电池供电系统等产品应…

VUE3+Springboot实现SM2完整步骤

一.VUE3代码实现 1.安装依赖 npm install --save sm-crypto 2.导入sm2 const sm2 require(sm-crypto).sm2 3.定义公钥私钥 var privateKey "私钥";//解密使用 var publicKey "公钥";//加密使用 4.设置加密模式 //cipherMode [加密模式 C1C3C2:1,…

2023亚太杯数学建模竞赛C题思路分析+代码+论文

C题:The Development Trend of New Energy Electric Vehicles in China中国谈新能源电动汽车的发展趋势 新能源汽车是指采用先进的技术原理、新技术和新结构,以非常规车用燃料为动力来源(非常规车用燃料是指除汽油和柴油以外的燃料),并集成了…

通过Everything 建立HTTP服务器时指定文件夹共享

在局域网传输文件,高效传输,不限文件大小 1、安装Everything 2、在Everything开启HTTP服务 【工具】—>>【选项】—>>【HTTP服务】启用HTTP服务器,设置HTTP服务器用户名和密码 3、查看网络信息 打开服务端电脑的【命令提示…

SpringCache使用详解

SpringCache 1.新建测试项目SpringCache2.SpringCache整合redis2.1.Cacheable2.2.CacheEvict2.3.Cacheput2.4.Caching2.5.CacheConfig 3.SpringCache问题4.SpringCache实现多级缓存 1.新建测试项目SpringCache 引入依赖 <dependencies><dependency><groupId&g…

el-table如何动态增加列

el-table如何动态添加列&#xff1a; 1. 将数据从列表中抛出来直接放到对象中&#xff1a; data.forEach(el > {el.shipList.forEach(item > {el[item.FieldTag] item.DateTimeValue;});}); 2. 网页&#xff1a; planFormList是列表内容&#xff0c;循环出来当做表头。…

内裤洗衣机有用吗?口碑最好的小型洗衣机

想必各位小伙伴都知道我们的贴身衣物&#xff0c;不可以与其他衣服一起在洗衣机中清洗&#xff0c;每次都需要把内衣裤挑选出来手洗&#xff0c;但是我们每天都要上厕所&#xff0c;难免会沾上污渍和细菌&#xff0c;我们在用手搓洗的过程中很难把细菌给清除掉&#xff0c;所以…

ios打包,证书获取

HBuilderX 打包ios界面&#xff1a; Bundle ID(AppID)&#xff1a; 又称应用ID&#xff0c;是每一个ios应用的唯一标识&#xff0c;就像一个人的身份证号码&#xff1b; 每开发一个新应用&#xff0c;首先都需要先去创建一个Bundle ID Bundle ID 格式&#xff1a; 一般为&…

用Python写了一个贪吃蛇大冒险小游戏

一、游戏简介 1.1 游戏操作及游戏规则 &#xff08;1&#xff09;游戏开始后&#xff0c;通过键盘上下左右键控制贪吃蛇移动寻找食物&#xff1b; &#xff08;2&#xff09;贪吃蛇每吃一个食物&#xff0c;身长会增加一个单位&#xff1b; &#xff08;3&#xff09;在正常模…

CSDN文章保存为MD文档(二)

免责声明 文章仅做经验分享用途&#xff0c;利用本文章所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担&#xff01;&#xff01;&#xff01; import sys sys.path.a…

【HarmonyOS】 低代码平台组件拖拽使用技巧之登录组件

【关键字】 HarmonyOS、低代码平台、组件拖拽、登录组件、代码编辑器 1、写在前面 前面我们介绍了低代码中堆叠容器、滚动容器、网格布局、页签容器以及一些常用容器和组件的拖拽使用方法&#xff0c;本篇我们来介绍一个新的组件&#xff0c;这个组件是属于业务组件——登录组…

Modbus转Profinet网关:PLC与天信流量计通讯的经典案例

无论您是PLC或工业设备的制造商&#xff0c;还是工业自动化系统的维护人员&#xff0c;可能会遇到需要将不同协议的设备连接组合并通讯的情况&#xff0c;Modbus和Profinet是现代工业自动化中常见的两种通信协议&#xff0c;在工业控制领域中被广泛应用。 在这种情况绝大多数会…

快速上手Banana Pi BPI-M4 Zero 全志科技H618开源硬件开发开发板

Linux[编辑] 准备[编辑] 1. Linux镜像支持SD卡或EMMC启动&#xff0c;并且会优先从SD卡启动。 2. 建议使用A1级卡&#xff0c;至少8GB。 3. 如果您想从 SD 卡启动&#xff0c;请确保可启动 EMMC 已格式化。 4. 如果您想从 EMMC 启动并使用 Sdcard 作为存储&#xff0c;请确…

《微信小程序开发从入门到实战》学习二十六

3.4 开发参与投票页面 参与投票页面同样需要收集用户提交的信息&#xff0c;哪个用户在哪个投票选择了什么选项&#xff0c;因此它也是一个表单页面 3.4.1 如何获取投票信息 假设用户A在投票创建页面后填了表单&#xff08;1.创建投票&#xff09;&#xff0c;用户A 点了提交…