首页 > 其他分享 >【小睿的ML之路】Seaborn-单变量分析绘制

【小睿的ML之路】Seaborn-单变量分析绘制

时间:2023-09-21 22:22:47浏览次数:34  
标签:random cov ML Seaborn seaborn 小睿 sns np mean

import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline


x = np.random.normal(size = 100)
print(x)
[ 0.22404072 -1.9394295  -0.32313598 -0.25468579 -0.71927794  0.66163234
 -0.09782319  0.44150068 -0.43913581 -0.99535212 -1.52099548  1.10586407
  1.99739611 -0.20333526  1.95211243  1.62790351  0.17566407  0.7367439
  1.22918265 -0.30148079  0.80212506  2.49887791 -0.96307435  2.39677932
 -2.60058269 -2.32157223 -1.12959309 -0.02223216  0.76995059  0.15995655
 -0.30360913 -1.1984514   0.94165553 -1.73067029 -0.04900799  1.41992771
 -0.29320199 -0.48182442  1.88731008 -0.38295552 -1.29069302  0.88104745
  0.62863433 -0.63252684  1.25865766  1.77507824  0.3238686   0.26133148
 -0.26306752  1.70341709 -1.95998791 -0.92217953  0.21504576  1.2619886
 -0.65072434 -0.32253297 -2.48223873 -1.05107829 -0.04584277  1.15717941
  1.6194882   0.43470289 -0.17545919  0.89913012 -0.3077884  -1.24036827
  1.16542699 -1.54332189  0.11549242  1.26847205 -1.22091417 -0.51731699
 -0.18920906  0.31287551 -0.23093874  0.58638718 -0.50567837  0.99185748
  0.86307229 -0.7683871   0.77650661  0.96928406 -0.34451929 -0.17806966
  0.94265531  0.80095782  0.83518477 -1.97918719 -1.15126041 -1.2010081
 -1.31039485 -0.42574863 -0.86383837  0.1713745   0.61509495  0.26626452
  1.16467297  0.40480644 -1.55330148 -1.50325382]
sns.displot(x,kde=False)
<seaborn.axisgrid.FacetGrid at 0x206c5c43a60>

sns.displot(x,kde=False,bins=20)
<seaborn.axisgrid.FacetGrid at 0x206cb4f9f60>

数据分布情况

通过使用distplot()来拟合出一个数据集的参数分布,直观上来评估其余观测数据是否关系密切。

from scipy import stats

x = np.random.gamma(6, size=200)
# print(x)
sns.distplot(x, kde=False, fit=stats.gamma);
C:\Users\Administrator\AppData\Local\Temp\ipykernel_4588\2584871392.py:5: UserWarning: 

`distplot` is a deprecated function and will be removed in seaborn v0.14.0.

Please adapt your code to use either `displot` (a figure-level function with
similar flexibility) or `histplot` (an axes-level function for histograms).

For a guide to updating your code to use the new functions, please see
https://gist.github.com/mwaskom/de44147ed2974457ad6372750bbe5751

  sns.distplot(x, kde=False, fit=stats.gamma);

以下这段代码主要做了以下几件事情:

  1. 定义了一个均值 mean 和协方差矩阵 cov
  2. 使用 np.random.multivariate_normal 函数生成了一个二维多元正态分布的随机样本 data
  3. 将随机样本转换成 Pandas DataFrame df

具体解释如下:

  • mean, cov = [0,1],[(1,.5),(.5,1)]:这行代码定义了一个均值 mean 和协方差矩阵 covmean 是一个包含两个元素的列表,分别是均值的两个维度,这里是 [0, 1]cov 是一个二维列表,表示协方差矩阵。在这个例子中,协方差矩阵是一个对角阵,对角线上的元素分别为 11,非对角线上的元素分别为 0.5,表示两个维度间的协方差。

  • data = np.random.multivariate_normal(mean, cov, 200):使用 np.random.multivariate_normal 函数生成符合多元正态分布的随机样本 data。参数 mean 是指定的均值向量,参数 cov 是协方差矩阵,参数 200 指定生成的样本数。

  • df = pd.DataFrame(data, columns=["x", "y"]):将生成的随机样本 data 转换成 Pandas DataFrame,其中 "x" 和 "y" 是列名。生成的 DataFrame df 包含两列,分别为 "x" 和 "y",对应多元正态分布的两个维度。

这段代码的最终目的是生成一个包含 200 个多元正态分布样本的 DataFrame,并命名两个维度为 "x" 和 "y"。

mean, cov = [0,1],[(1,.5),(.5,1)]

data = np.random.multivariate_normal(mean,cov,200)
df = pd.DataFrame(data,columns=["x","y"])
df
x y
0 -0.651501 1.753638
1 1.058182 0.658726
2 0.160683 0.167273
3 1.073369 2.482252
4 0.501297 0.753138
... ... ...
195 0.664084 1.882779
196 0.385395 1.137191
197 0.204888 1.780196
198 1.528779 1.244423
199 -0.094580 0.473490

200 rows × 2 columns

观测两个变量之间的分布关系最好用散点图

sns.jointplot(x="x",y="y",data=df)
<seaborn.axisgrid.JointGrid at 0x206cbd836a0>

hex图(数据量较大时使用)

这段代码主要实现了以下功能:

  1. 生成符合多元正态分布的随机样本 xy
  2. 使用 seaborn 库绘制二维散点图,并采用六边形图显示点的分布密度。

具体解释如下:

  • x, y = np.random.multivariate_normal(mean, cov, 1000).T:这行代码使用 np.random.multivariate_normal 函数生成符合多元正态分布的随机样本,其中 mean 是均值向量,cov 是协方差矩阵,1000 是生成的样本数。.T 是转置操作,将生成的样本进行转置,使得 xy 分别存储多元正态分布的两个维度的样本。

  • with sns.axes_style("white")::这行代码使用 seaborn 库中的 axes_style 函数,指定绘图时的风格,这里选择了白色背景。

  • sns.jointplot(x=x, y=y, kind="hex", color="k"):这行代码使用 seaborn 库中的 jointplot 函数绘制二维散点图,并使用六边形图 (kind="hex") 来显示点的分布密度。xy 分别是两个维度的数据,color="k" 表示六边形图的颜色为黑色。

x,y = np.random.multivariate_normal(mean,cov,1000).T
with sns.axes_style("white"):
    sns.jointplot(x=x,y=y,kind="hex",color="k")

这段代码主要实现了以下功能:

  1. 使用 seaborn 库加载内置的 "iris" 数据集。
  2. 使用 sns.pairplot 函数绘制多变量之间的两两关系图。

具体解释如下:

  • iris = sns.load_dataset("iris"):这行代码使用 seaborn 库的 load_dataset 函数加载内置的 "iris" 数据集,该数据集包含了鸢尾花的特征数据。

  • sns.pairplot(iris):这行代码使用 seaborn 库的 pairplot 函数绘制多变量之间的两两关系图。对于数据集中的每对特征,它会绘制散点图以及各个特征的直方图,展示它们之间的关系。通常用于探索数据集中的特征间的关系。

iris = sns.load_dataset("iris")
sns.pairplot(iris)

标签:random,cov,ML,Seaborn,seaborn,小睿,sns,np,mean
From: https://www.cnblogs.com/guowenrui/p/17721120.html

相关文章

  • selenium 报错 element not interactable: [object HTMLDivElement] has no size and
    selenium自动化识别验证码x,y坐标 命令move_to_element_with_offset报错:elementnotinteractable:[objectHTMLDivElement]hasnosizeandlocation由于>4.0是以中心点偏移,4.0是左上角偏移。卸载掉最新的seleniuim:pipuninstallselenium安装selenium4.0:pipinstalls......
  • NET6/Framework 封装邮件发送纯文本/HTML/HTML+图片/附件
    NugetRuntime:Net6MailKit4.2.0MimeKit4.2.0发送纯文本{varbodyBuilder=newBodyBuilder();bodyBuilder.TextBody="这是一封纯文本邮件";message.Body=bodyBuilder.ToMessageBody();}{vartextPart=newTextPart("plain")......
  • firefox浏览shtml时直接显示源代码问题
    firefox浏览shtml时直接显示源代码问题今天浏览网页时,打开一个网页http://photo.17ok.com/,发现直接显示了源代码,随之把页面补全,.php.html.htm都试过但都提示servernotfound,最后输入shtml,又一次出来了源代码。那么确定此页面属于.shtml页面。用IE浏览器打开,正常,无奈了,初步......
  • 【小睿的ML之路】Seaborn调色板更多颜色设置
    importseabornassnsimportnumpyasnpimportpandasaspdimportmatplotlibasmplimportmatplotlib.pyplotasplt%matplotlibinline使用xkcd颜色来命名颜色绘制三条线,分别设定颜色绘制一条从(0,0)到(1,1)的线plt.plot([0,1],[0,1],sns.xkcd_rgb["pale......
  • 关于Dubbo使用XML配置方式启动时卡住的问题
    最近参照Dubbo官网“快速开始”的案例写一个Demo,没想到差点被劝退。主程序如下:packagecom.example.dubbo.main;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassProvider{publicstaticvoidmain(String[]args)throwsExce......
  • HTML
    HTML笔记1、前端:主要职责,负责网页。2、通过网页展示数据。3、网页的组成:(1)网页的结构内容-HTML(2)网页的样式-CSS(3)网页的行为-JavaScript4、HTML(1)简介:超文本标记语言(英语:HyperTextMarkupLanguage,简称:HTML)是一种用于创建网页的标准标记语言。开发工具:VSCode、HBuilderX、HBuilderHTML......
  • XML Schema All In One
    XMLSchemaAllInOneXSDAnXMLSchemadescribesthestructureofanXMLdocument.TheXMLSchemalanguageisalsoreferredtoasXMLSchemaDefinition(XSD).https://en.wikipedia.org/wiki/XML_schemahttps://www.w3.org/XML/Schemahttps://www.w3.org/TR/......
  • 使用dom4j解析xml文件及selectNodes取不到值问题解决
    参考文档:https://blog.csdn.net/PARADDD/article/details/131307189https://blog.csdn.net/weixin_37703598/article/details/81273199......
  • Clone fail unable to access 'httpsgithub.comLovi-githubmyUserCenter.git' OpenSSL
    bug:unabletoaccess'https://github.com/xxx':OpenSSLSSL_read:SSL_ERROR_SYSCALL,errno10054关于git提交github出现errno10054、port443:Timedout等问题解决_git提交10054_husishuai的博客-CSDN博客按照上边的解决方法即可......
  • class path resource [.xml] cannot be opened because it does not exist
    classpathresource[bean1.xml]cannotbeopenedbecauseitdoesnotexist错误重现bug:Exceptioninthread"main"org.springframework.beans.factory.BeanDefinitionStoreException:IOExceptionparsingXMLdocumentfromclasspathresource[bean1.xml]......