Я пытаюсь отработать навыки работы с данными на реальных данных.Я получил данные о раке молочной железы по ссылке .Конкретный файл с данными, которые я использую: breast-cancer-wisconsin.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_size, который указывает по шкале от 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, чтобы указать, какой цвет представляет какой класс?
Заранее спасибо.