【华为云技术分享】【Python算法】分类与预测——logistic回归分析

1.logistic回归定义

logistic回归是一种广义线性回归(generalized linear model),因此与多重线性回归分析有很多相同之处。它们的模型形式基本上相同,都具有 w‘x+b,其中w和b是待求参数,其区别在于他们的因变量不同,多重线性回归直接将w‘x+b作为因变量,即y =w‘x+b,而logistic回归则通过函数L将w‘x+b对应一个隐状态p,p =L(w‘x+b),然后根据p 与1-p的大小决定因变量的值。如果L是logistic函数,就是logistic回归,如果L是多项式函数就是多项式回归。

logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释,多类可以使用softmax方法进行处理。实际中最为常用的就是二分类的logistic回归。

2.操作系统

  操作机:Linux_Ubuntu
  操作机默认用户:root

3.实验工具

Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。Python已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。

由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。

众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。

4.Numpy

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。

5.scikit-learn

scikit-learn,Python 中的机器学习,简单高效的数据挖掘和数据分析工具,可供大家使用,可在各种环境中重复使用,建立在 NumPy,SciPy 和 matplotlib 上开放源码,可商业使用 - BSD license。

6.Matplotlib

Matplotlib 是一个 Python 的 2D绘**,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

7.pandas

Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

8.导入所需要的库:numpy,matplotlib.pyplot,pandas

代码如下:

1 # Importing the libraries
2 import numpy as np
3 import matplotlib.pyplot as plt
4 import pandas as pd

9.加载数据集

代码如下:

1 # Importing the dataset
2 dataset = pd.read_csv(‘/mnt/dataset_29/Social_Network_Ads_82e4aa0627105a2d22b70d7ad0bfeda0.csv‘)   注意:数据集以实际位置为准
3 X = dataset.iloc[:, [2, 3]].values
4 y = dataset.iloc[:, 4].values

注意:实验中以数据集的具体为准。

如下给出数据,可将数据创建响相应的数据集用于字日常训练,也可在实验平台中数据集模块下的的“社交网络数据集”中进行查看。
数据集如下:(见附件)

10.将数据集分割为训练集和测试集

代码如下:

1 # Splitting the dataset into the Training set and Test set
2 from sklearn.model_selection import train_test_split
3 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)

11.特征缩放

代码如下:

1 # Feature Scaling
2 from sklearn.preprocessing import StandardScaler
3 sc = StandardScaler()
4 X_train = sc.fit_transform(X_train)
5 X_test = sc.transform(X_test)

12.使用逻辑回归对数据进行处理

代码如下:

1 from sklearn.linear_model import LogisticRegression
2 classifier = LogisticRegression()
3 classifier.fit(X_train, y_train)

13.对测试集进行分类

代码如下:

1 # Predicting the Test set results
2 y_pred = classifier.predict(X_test)

14.制造混淆矩阵评估分类器性能

代码如下:

1 from sklearn.metrics import confusion_matrix
2 cm = confusion_matrix(y_test, y_pred)

15.绘制训练集和测试集

绘制训练集数据结果:

 1 from matplotlib.colors import ListedColormap
 2 X_set,y_set=X_train,y_train
 3 X1,X2=np. meshgrid(np. arange(start=X_set[:,0].min()-1, stop=X_set[:, 0].max()+1, step=0.01),
 4                    np. arange(start=X_set[:,1].min()-1, stop=X_set[:,1].max()+1, step=0.01))
 5 plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),
 6              alpha = 0.75, cmap = ListedColormap((‘red‘, ‘green‘)))
 7 plt.xlim(X1.min(),X1.max())
 8 plt.ylim(X2.min(),X2.max())
 9 for i,j in enumerate(np. unique(y_set)):
10     plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],
11                 c = ListedColormap((‘red‘, ‘green‘))(i), label=j)
12
13 plt. title(‘ LOGISTIC(Training set)‘)
14 plt. xlabel(‘ Age‘)
15 plt. ylabel(‘ Estimated Salary‘)
16 plt. legend()
17 plt. show()

给测试集数据分类:

 1 X_set,y_set=X_test,y_test
 2 X1,X2=np. meshgrid(np. arange(start=X_set[:,0].min()-1, stop=X_set[:, 0].max()+1, step=0.01),
 3                    np. arange(start=X_set[:,1].min()-1, stop=X_set[:,1].max()+1, step=0.01))
 4
 5 plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),
 6              alpha = 0.75, cmap = ListedColormap((‘red‘, ‘green‘)))
 7 plt.xlim(X1.min(),X1.max())
 8 plt.ylim(X2.min(),X2.max())
 9 for i,j in enumerate(np. unique(y_set)):
10     plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],
11                 c = ListedColormap((‘red‘, ‘green‘))(i), label=j)
12
13 plt. title(‘ LOGISTIC(Test set)‘)
14 plt. xlabel(‘ Age‘)
15 plt. ylabel(‘ Estimated Salary‘)
16 plt. legend()
17 plt. show()

社交网络测试数据集.csv.zip

作者:Micker

原文地址:https://www.cnblogs.com/huaweicloud/p/12523482.html

时间: 2024-11-01 18:17:54

【华为云技术分享】【Python算法】分类与预测——logistic回归分析的相关文章

王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019【华为云技术分享】

演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019)在北京举办.在计算机视觉技术专题,华为云OCR人工智能高级算法工程师王晶分享了“文字识别服务的技术实践.底层框架及应用场景”的主题演讲. 演讲的第一部分,他分享了文字检测和识别的基础知识以及难点和最新进展.第二部分是华为云文字识别服务关键能力.关键技术,以及落地过程中遇到的“坑”,这对其他人工智能产

用python读取word文件里的表格信息【华为云技术分享】

在企查查查询企业信息的时候,得到了一些word文件,里面有些控股企业的数据放在表格里,需要我们将其提取出来. word文件看起来很复杂,不方便进行结构化.实际上,一个word文档中大概有这么几种类型的内容:paragraph(段落),table(表格),character(字符).我现在要解析的word文档中,基本都是段落和表格,本文主要来讲一下如何从word中解析出表格,并将表格信息进行结构化. 要想使用python解析word文件,我们可以使用包docx,首先我们需要安装它. 安装完成后,我

【华为云技术分享】技术探秘:华为云瑶光何以定方向

作为北斗第七星,瑶光自古就可用来判断四季更迭.引向定时.而作为全新发布的智能云操作系统,瑶光智慧云脑又是如何做到统领云上各类资源.实现租户需求与资源供应之间最佳匹配的呢?在华为云瑶光实验室.华为云算法创新实验室里,我们找到了答案. #初识资源调度# 云OS:我太“南”了 依托虚拟化技术,我们得以将数据中心海量的计算.存储资源以云服务的形式对外提供.而随着数据中心规模扩展.边缘计算带来的算力延伸,承担着高效.精准资源调度的云操作系统面临着三大挑战: 第一个挑战是云计算的资源消耗/售卖模式带来的.云

【我的物联网成长记3】如何开发物联网应用?【华为云技术分享】

[摘要] 物联网应用是设备管理.故障监测.数据分析的重要工具.本文介绍如何基于物联网平台开发应用,包括API.SDK和图形化开发三种方式. -------------------整体方案------------------- 物联网应用是企业和开发者进行设备管理.告警&故障监测.业务监控.数据分析的重要工具.物联网平台屏蔽了设备接入的复杂性和协议的差异性,解耦应用与设备,为上层应用提供统一格式的数据,简化终端厂商开发的同时,也让应用提供商聚焦于自身的业务开发.基于华为物联网平台的应用开发方案如下

【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得

DDD做为软件设计方法于2004年提出,一直不温不火,最近几年突然火起来了,为啥呢?正所谓机会给有准备的人,因为微服务的流行,大家都跃跃欲试把传统单体软件转成微服务架构,但理论很丰满,现实很骨感,光是分解微服务就让人找不到北,而DDD是歪打正着也好,富有远见也好,正好适合微服务转型设计,不火都难. 最近学习了领域驱动设计(Domain-Driven Design),感觉受益匪浅,那到底啥是DDD呢?这里分享一下学习心得.网上有很多详细的资料,感兴趣可以看看这个https://www.infoq.

【华为云技术分享】大数据容器化,头部玩家尝到了甜头

[摘要] 大数据容器化,大势所趋.头部玩家在进行大数据容器化后,尝到了甜头? 大数据的需求热度,从来都是这个时代的浪尖.然而由于大数据系统的复杂性,一度导致业界大数据已死的各种声音不断.尤其是当MapR被HPE收购,Cloudera公司股票持续跌成狗,使得这种声音进一步放大.其实,大数据的需求一直在,只是传统的大数据实现系统需要考虑重新构建.而容器依靠其自身的标准化,一次构建,随处运行的能力,使得非常适合大数据系统的构建和管理.容器技术当前正是那只火遍全球的当红辣子鸡. 1 华为云BigData

【华为云技术分享】漫谈LIteOS-物联网操作系统介绍

[摘要] 本文主要对于目前物联网操作系统的定义以及主要特点进行了分析,最后介绍了几个常见的物联网操作系统. 1简介 提到操作系统,可能首先想到的就是苹果操作系统,windows,Linux,Unix,Android,IOS等,显然目前比较为人熟知的操作系统基本都是一些手机或者电脑端的操作系统.而随着互联网技术的不断发展,硬件的体积越来越小,物联网技术也迎来了爆棚式的发展.物理网不同于 互联网的不同在于后者更关注的是人与人的互联,而前者是更加强调人与物,物与物的连接,从而实现万物互联(IOT).显

华为云实战开发】5.如何快速创建免费Git代码仓库【华为云技术分享】

1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用. 2 概述 2.1 版本控制系统介绍 从狭义上来说,版本控制系统是软件项目开发过程中管理代码所有修订版本的软件,能够存储.追踪文件的修改历史,记录多个版本的开发和维护,事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理.版本控制系统(Version Control Systems)主要分为两类,集中式和分布式. 2.1.1 集中式版本控制系统 集中式版本控

揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】

2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实现了好用不贵的普惠型分布式缓存Redis产品. 本文从技术视角解读华为云鲲鹏Redis是如何通过数据中心基础设施.芯片.硬件.软件等全栈创新优化,达成以上效果. 一.为什么ARM架构适合Redis? 众所周知,Redis是一款风靡全球的高性能.高灵活性.数据结构类型丰富的key-value内存数据库

MarkDown添加图片的三种方式【华为云技术分享】

Markdown插图片有三种方法,各种Markdown编辑器的插图方式也都包含在这三种方法之内. 插图最基础的格式就是: ![Alt text](图片链接 "optional title") 插入本地图片 只需要在基础语法的括号中填入图片的位置路径即可,支持绝对路径和相对路径. 例如: ![avatar](/home/picture/1.png) 插入网络图片 只需要在基础语法的括号中填入图片的网络链接即可,现在已经有很多免费/收费图床和方便传图的小工具可选. 例如: ![avatar