下面使用Python库的数据可视化工具的解释正确吗?

下面使用Python库的数据可视化工具的解释正确吗?,python,pandas,matplotlib,histogram,data-science,Python,Pandas,Matplotlib,Histogram,Data Science,我试图用一些真实的数据来练习数据科学技能。我从医院得到了关于乳腺癌的数据。我正在使用的包含数据的特定文件是威斯康星州乳腺癌。data 下载文件后,我试图对数据有一个全面的了解,因此我做到了: import numpy as np from sklearn import preprocessing, cross_validation, neighbors import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('b

我试图用一些真实的数据来练习数据科学技能。我从医院得到了关于乳腺癌的数据。我正在使用的包含数据的特定文件是威斯康星州乳腺癌。data

下载文件后,我试图对数据有一个全面的了解,因此我做到了:

import numpy as np
from sklearn import preprocessing, cross_validation, neighbors
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('breast-cancer-wisconsin.data.txt')
print(df.head())  
将下表作为输出返回:

id  clump_thickness  unif_cel_size  unif_cel_shape  marg_adhesion  \
0  1000025                5              1               1              1   
1  1002945                5              4               4              5   
2  1015425                3              1               1              1   
3  1016277                6              8               8              1   
4  1017023                4              1               1              3   

   single_epith_cell_size bare_nuclei  bland_chrom  norm_nucleoli  mitoses  \
0                       2           1            3              1        1   
1                       7          10            3              2        1   
2                       2           2            3              1        1   
3                       3           4            3              7        1   
4                       2           1            3              1        1   

   class  
0      2  
1      2  
2      2  
3      2  
4      2  
在阅读“数据集”文档时,我意识到最后一列关于类的内容有两个选项:2和4。数字2用于良性肿瘤,数字4用于恶性肿瘤

我决定研究列unif_cel_大小,它以1到10的比例表示“细胞大小的均匀性”。因此,我绘制了以下柱状图:

import numpy as np
from sklearn import preprocessing, cross_validation, neighbors
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('breast-cancer-wisconsin.data.txt')
print(df.head())  
df['unif_cel_size'].hist()
plt.show()
代码返回的图像是:

我决定,如果你把这些细胞分为恶性细胞和良性细胞,看看直方图是如何变化的,这将是一件有趣的事情。所以,我做到了:

import numpy as np
from sklearn import preprocessing, cross_validation, neighbors
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('breast-cancer-wisconsin.data.txt')
print(df.head())  
df.groupby('class')['unif_cel_size'].hist()
plt.show()
输出为:

现在,我开始怀疑了。我对这个结果的解释是:细胞大小和肿瘤类型之间的关系是不对称的。其中一个类专注于小尺寸,另一个则专注于较大的单元尺寸

(i) 这个解释正确吗?我是不是搞错了

(ii)如何使用matplotlib指示哪个颜色代表哪个类别

提前谢谢。

(i)你的解释是正确的。然而,如果你想更彻底,你可以做一些统计测试来评估这种差异有多大(可能非常显著)

(ii)如果您想要图例,此功能可以:

df.groupby('class')['unif\u cel\u size'].plot(kind='hist',legend=True)

如果你对进一步研究数据科学感兴趣,你可以试着看看一个预测因子有多好,那就是单元格大小的不确定性(可能还有其他因素)。在这种情况下,您可以将数据集拆分为训练和测试,并构建一个模型(例如,使用sklearn,并进行一些逻辑模型)