Created
November 5, 2019 16:56
-
-
Save kaveenkumar/c8e02ebcd957b8d35eb3235afa8bc320 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# AI@University - Preparation Material\n", | |
"This preparation material aims to give you an intuition on the activities and skills needed during the upcoming workshop at your university. The center piece of this workshop will be a compact hacking competition, in which you solve a given customer case in small groups, using Machine Learning. This notebook illustrates the general approach to solving such a case study, and it is recommended to follow a similar structure during the hacking competition of the workshop.\n", | |
"\n", | |
"### Prerequisites\n", | |
"Familiarity with the **Python 3** programming language, related libraries, such as **pandas**, **numpy** or **scikit-learn**, as well as **Jupyter Notebooks** are required. So before the workshop, please make sure that you have installed Python 3 and Juypter Notebooks, preferrably using the [Anaconda distribution](https://www.anaconda.com/download/#macos), as it already contains a set of useful Data Science libraries.\n", | |
"\n", | |
"**Note**:\n", | |
"* When downloading this file to macOS, it automatically gets converted to a text file. To be able to open it as a Jupyter Notebook, select the file and press `command` + `i`. In the opening detail view, delte the file ending `.txt`\n", | |
"\n", | |
"# Case Study: Thomas J. Watson Hospital - Oncology Department\n", | |
"You have been hired as a consulting team of Data Scientists by the oncology department of the **Thomas J. \n", | |
"Watson Hospital** in **Berlin**.\n", | |
"\n", | |
"The oncology department is highly recognized and attracts patients from all over the world\n", | |
"due to its exceptional and effective treatment methods.\n", | |
"\n", | |
"To maintain its excellent reputation and pioneer in the area of cancer treatment, the Thomas J. Watson hospital\n", | |
"setup a new Technology Council with the goal to investigate future-oriented technologies to support its oncologists. Concretely, the Council agreed to target the identification of breast cancer in its early stages, which enables treating the disease more effectively.\n", | |
"\n", | |
"You have been engaged by the Technology Counsil to find a solution that assists the oncologists in classifying whether a breast tumor is \n", | |
"**malignant** or **benign**.\n", | |
"\n", | |
"You should present your results to the hospital board coming Friday. Keep in mind to present your findings in a way\n", | |
"that both business and technical stakeholders feel addressed.\n", | |
"\n", | |
"### Data\n", | |
"This breast cancer databases was obtained from the University of Wisconsin Hospitals, Madison from Dr. William H. Wolberg:\n", | |
"\n", | |
"**Wisconsin Breast Cancer Database** (January 8, 1991), O. L. Mangasarian and W. H. Wolberg: \"Cancer diagnosis via linear programming\", SIAM News, Volume 23, Number 5, September 1990, pp 1 & 18, link: https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/\n", | |
"\n", | |
"### Data Dictionary\n", | |
"All attributes, except the target value (`class`) are numeric and range from `1` to `10`.\n", | |
"\n", | |
"Attribute|Description\n", | |
"---|---\n", | |
"sample_code_number|ID number of sample\n", | |
"clump_thickness|In the Clump thickness benign cells tend to be grouped in monolayers, while cancerous cells are often grouped in multilayer.\n", | |
"uniformity_of_cell_size|While in the Uniformity of cell size/shape the cancer cells tend to vary in size and shape. That is why these parameters are valuable in determining whether the cells are cancerous or not. \n", | |
"uniformity_of_cell_shape|see above\n", | |
"marginal_adhesion|In the case of Marginal adhesion the normal cells tend to stick together, where cancer cells tend to lose this ability. So loss of adhesion is a sign of malignancy.\n", | |
"single_epithelial_cell_size|In the Single epithelial cell size the size is related to the uniformity mentioned above. Epithelial cells that are significantly enlarged may be a malignant cell.\n", | |
"bare_nuclei|The Bare nuclei is a term used for nuclei that is not surrounded by cytoplasm (the rest of the cell). Those are typically seen in benign tumors. \n", | |
"bland_chromatin|The Bland Chromatin describes a uniform \"texture\" of the nucleus seen in benign cells. In cancer cells the chromatin tends to be coarser. \n", | |
"normal_nucleoli|The Normal nucleoli are small structures seen in the nucleus. In normal cells the nucleolus is usually very small if visible. In cancer cells the nucleoli become more prominent, and sometimes there are more of them. \n", | |
"mitoses|Finally, Mitoses is nuclear division plus cytokines and produce two identical daughter cells during prophase. It is the process in which the cell divides and replicates. Pathologists can determine the grade of cancer by counting the number of mitoses\n", | |
"class|Label: Benign=2, Malignant=4\n", | |
"\n", | |
"### Medical Background\n", | |
"Breast cancer is the most common cancer among women and one of the major causes of death worldwide.\n", | |
"Every year approximately 124 out of 100,000 women are diagnosed with breast cancer, and the estimation is that 23 out of the 124 women will die of this disease. When detected in its early stages, there is a 30% chance that the cancer can be treated effectively, but the late detection of advanced-stage tumors makes the treatment more difficult." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Setup" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from time import time\n", | |
"from collections import Counter\n", | |
"from pathlib import Path\n", | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"from sklearn.svm import LinearSVC\n", | |
"from sklearn.model_selection import train_test_split, ShuffleSplit, cross_validate\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"%matplotlib inline\n", | |
"import warnings\n", | |
"warnings.filterwarnings('ignore')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Data\n", | |
"Specify in which directory the input data is kept." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"data_directory = Path('../raw_data/challenge_data')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Training Data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"10 features and 559 training examples\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>sample_code_number</th>\n", | |
" <th>uniformity_of_cell_shape</th>\n", | |
" <th>uniformity_of_cell_size</th>\n", | |
" <th>clump_thickness</th>\n", | |
" <th>bare_nuclei</th>\n", | |
" <th>cell_size</th>\n", | |
" <th>normal_nucleoli</th>\n", | |
" <th>clump_cohesiveness</th>\n", | |
" <th>nuclear_chromatin</th>\n", | |
" <th>mitoses</th>\n", | |
" <th>class</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>557583</td>\n", | |
" <td>5</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1230688</td>\n", | |
" <td>7</td>\n", | |
" <td>4</td>\n", | |
" <td>7</td>\n", | |
" <td>4</td>\n", | |
" <td>3</td>\n", | |
" <td>7</td>\n", | |
" <td>7</td>\n", | |
" <td>6</td>\n", | |
" <td>1</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>787451</td>\n", | |
" <td>5</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1238777</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1371026</td>\n", | |
" <td>5</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>10</td>\n", | |
" <td>4</td>\n", | |
" <td>10</td>\n", | |
" <td>5</td>\n", | |
" <td>6</td>\n", | |
" <td>3</td>\n", | |
" <td>4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" sample_code_number uniformity_of_cell_shape uniformity_of_cell_size \\\n", | |
"0 557583 5 10 \n", | |
"1 1230688 7 4 \n", | |
"2 787451 5 1 \n", | |
"3 1238777 1 1 \n", | |
"4 1371026 5 10 \n", | |
"\n", | |
" clump_thickness bare_nuclei cell_size normal_nucleoli \\\n", | |
"0 10 10 10 10 \n", | |
"1 7 4 3 7 \n", | |
"2 2 1 2 1 \n", | |
"3 1 1 2 1 \n", | |
"4 10 10 4 10 \n", | |
"\n", | |
" clump_cohesiveness nuclear_chromatin mitoses class \n", | |
"0 10 1 1 4 \n", | |
"1 7 6 1 4 \n", | |
"2 1 1 1 2 \n", | |
"3 1 1 1 2 \n", | |
"4 5 6 3 4 " | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data = pd.read_csv(data_directory / 'breast_cancer_train.csv')\n", | |
"print(data.shape[1] - 1,'features and',data.shape[0],'training examples')\n", | |
"data.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Validation Data\n", | |
"As we can see, that validation data is missing values for the target value `class`, which should be predicted by our algorithm." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"10 features and 140 validation examples\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>sample_code_number</th>\n", | |
" <th>uniformity_of_cell_shape</th>\n", | |
" <th>uniformity_of_cell_size</th>\n", | |
" <th>clump_thickness</th>\n", | |
" <th>bare_nuclei</th>\n", | |
" <th>cell_size</th>\n", | |
" <th>normal_nucleoli</th>\n", | |
" <th>clump_cohesiveness</th>\n", | |
" <th>nuclear_chromatin</th>\n", | |
" <th>mitoses</th>\n", | |
" <th>class</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1056171</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1179818</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1334015</td>\n", | |
" <td>7</td>\n", | |
" <td>8</td>\n", | |
" <td>8</td>\n", | |
" <td>7</td>\n", | |
" <td>3</td>\n", | |
" <td>10</td>\n", | |
" <td>7</td>\n", | |
" <td>2</td>\n", | |
" <td>3</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1287282</td>\n", | |
" <td>3</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1265899</td>\n", | |
" <td>4</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" sample_code_number uniformity_of_cell_shape uniformity_of_cell_size \\\n", | |
"0 1056171 2 1 \n", | |
"1 1179818 2 1 \n", | |
"2 1334015 7 8 \n", | |
"3 1287282 3 1 \n", | |
"4 1265899 4 1 \n", | |
"\n", | |
" clump_thickness bare_nuclei cell_size normal_nucleoli \\\n", | |
"0 1 1 2 1 \n", | |
"1 1 1 2 1 \n", | |
"2 8 7 3 10 \n", | |
"3 1 1 2 1 \n", | |
"4 1 1 2 1 \n", | |
"\n", | |
" clump_cohesiveness nuclear_chromatin mitoses class \n", | |
"0 2 1 1 NaN \n", | |
"1 3 1 1 NaN \n", | |
"2 7 2 3 NaN \n", | |
"3 1 1 1 NaN \n", | |
"4 3 1 1 NaN " | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data_validation = pd.read_csv(data_directory / 'breast_cancer_validation.csv')\n", | |
"print(data.shape[1] - 1,'features and',data_validation.shape[0],'validation examples')\n", | |
"data_validation.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Data Preparation" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Concatenate `data` and `validation data` in a list to process them simultaneously." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"data_preprocessor = [data, data_validation]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Feature Selection\n", | |
"Drop features that do not hold any value for the analysis." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"for dataset in data_preprocessor:\n", | |
" dataset.drop('sample_code_number',axis=1,inplace=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Imputation\n", | |
"Check whether the data contains any null / NaN values or if any values do not correspond to the anticipated datatypes." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"uniformity_of_cell_shape 0\n", | |
"uniformity_of_cell_size 0\n", | |
"clump_thickness 0\n", | |
"bare_nuclei 0\n", | |
"cell_size 0\n", | |
"normal_nucleoli 0\n", | |
"clump_cohesiveness 0\n", | |
"nuclear_chromatin 0\n", | |
"mitoses 0\n", | |
"class 0\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data.isnull().sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"uniformity_of_cell_shape int64\n", | |
"uniformity_of_cell_size int64\n", | |
"clump_thickness int64\n", | |
"bare_nuclei int64\n", | |
"cell_size int64\n", | |
"normal_nucleoli object\n", | |
"clump_cohesiveness int64\n", | |
"nuclear_chromatin int64\n", | |
"mitoses int64\n", | |
"class int64\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The feature column `normal_nucleoli` is of datatype `object`, although it should contain only digits. Let's check which non-digit values can be found in the dataframe using the `isdigit()` function of pandas." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>normal_nucleoli</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>33</th>\n", | |
" <td>?</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>48</th>\n", | |
" <td>?</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>65</th>\n", | |
" <td>?</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>89</th>\n", | |
" <td>?</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>104</th>\n", | |
" <td>?</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" normal_nucleoli\n", | |
"33 ?\n", | |
"48 ?\n", | |
"65 ?\n", | |
"89 ?\n", | |
"104 ?" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data[~data['normal_nucleoli'].str.isdigit()][['normal_nucleoli']].head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Subsequently, let's replace all non-digit values with the median value and make the column numerical." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"pattern = r'(\\D+)'\n", | |
"replacement = str(int(data[data['normal_nucleoli'].str.isdigit()]['normal_nucleoli'].astype(int).median()))\n", | |
"\n", | |
"for dataset in data_preprocessor:\n", | |
" dataset['normal_nucleoli'] = dataset['normal_nucleoli'].str.replace(pat = pattern, repl = replacement).astype(int)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Generally, in the data preparation phase, you should focus on **Correcting**, **Completing** and **Converting** your existing data, as well as considering **Creating** new data (*feature engineering*) which might improve your predictions." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Data Exploration" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Target Distribtion\n", | |
"Check whether the target distribution is skewed." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2 369\n", | |
"4 190\n", | |
"Name: class, dtype: int64" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data['class'].value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Feature Correlations\n", | |
"Check the correlation amongst the attributes to determine strong predictors amongst the features. This help to put the model's output into context and start further investigations to improve the performance." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"correlation_matrix = data.corr()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x121cef2b0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"fig = plt.figure(figsize=(10, 7))\n", | |
"ax = plt.axes()\n", | |
"ax = sns.heatmap(correlation_matrix, mask=np.zeros_like(correlation_matrix, dtype=np.bool), cmap=\"Blues\", square=True, ax = ax)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Modeling" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Define Features and Target\n", | |
"Specify for the training set which columns contain the features (`X`) and which column contains the target (`y`). Note, that for the validation set we only need to specify the feature columns (`X_validation`) we use for prediction, since the target is not know to us and has to be predicted by our model." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"X = data[data.columns[:-1]]\n", | |
"y = data[data.columns[-1]]\n", | |
"\n", | |
"X_validation = data_validation[data_validation.columns[:-1]]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Model Selection\n", | |
"Define a list of algorithm classes that should be investigated. For this example, we are only considering a Support Vector Machine with a linear kernel. Feel free to consider more algorithms by importing the respective module and adding the respective model class to the `algorithms` list." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"algorithms = [\n", | |
" LinearSVC()\n", | |
"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def model_selection(X, y, algorithms, n_splits=10, test_size=.3, train_size=.6, random_state=0):\n", | |
" \"\"\"Select the most accurate machine learning model from a given list.\n", | |
"\n", | |
" Parameters\n", | |
" ----------\n", | |
" X : array-like\n", | |
" dataFrame to fit\n", | |
" y : array-like\n", | |
" target variable to predict\n", | |
" algorithms : array-like\n", | |
" scikit-learn model objects\n", | |
" n_splits : int\n", | |
" number of re-shuffling & splitting iterations\n", | |
" test_size : float, int\n", | |
" proportion of the dataset to include in the test split\n", | |
" train_size : float, int\n", | |
" proportion of the dataset to include in the train split\n", | |
" random_state : int\n", | |
" random seed\n", | |
" \n", | |
" Returns\n", | |
" -------\n", | |
" algorithm_comparision : array-like\n", | |
" dataframe containing the algorithm's attributes and accuracy \n", | |
" \"\"\"\n", | |
" # Define the cross-validation split, leaving out 10%\n", | |
" cv_split = ShuffleSplit(n_splits=n_splits,test_size=test_size,\n", | |
" train_size=train_size,random_state=random_state)\n", | |
" \n", | |
" # Create a table to compare the algorithm's metrics and predictions\n", | |
" columns = ['name','params','mean_train_accuracy','mean_test_accuracy','test_accuracy_3std' ,'time']\n", | |
" algorithm_comparison = pd.DataFrame(columns = columns)\n", | |
"\n", | |
" row_index = 0\n", | |
" \n", | |
" for alg in algorithms:\n", | |
"\n", | |
" # Set name and parameters of the algorithm\n", | |
" algorithm_name = alg.__class__.__name__\n", | |
" algorithm_comparison.loc[row_index, 'name'] = algorithm_name\n", | |
" algorithm_comparison.loc[row_index, 'params'] = str(alg.get_params())\n", | |
"\n", | |
" # Score model with cross validation using the accuracy metric\n", | |
" cv_results = cross_validate(alg, X, y, cv=cv_split, scoring='accuracy')\n", | |
" algorithm_comparison.loc[row_index, 'time'] = cv_results['fit_time'].mean()\n", | |
" algorithm_comparison.loc[row_index, 'mean_train_accuracy'] = cv_results['train_score'].mean()\n", | |
" algorithm_comparison.loc[row_index, 'mean_test_accuracy'] = cv_results['test_score'].mean() \n", | |
" algorithm_comparison.loc[row_index, 'test_accuracy_3std'] = cv_results['test_score'].std()*3\n", | |
"\n", | |
" row_index+=1\n", | |
"\n", | |
" algorithm_comparison.sort_values(by = ['mean_test_accuracy'], ascending = False, inplace = True)\n", | |
" \n", | |
" return algorithm_comparison" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>name</th>\n", | |
" <th>params</th>\n", | |
" <th>mean_train_accuracy</th>\n", | |
" <th>mean_test_accuracy</th>\n", | |
" <th>test_accuracy_3std</th>\n", | |
" <th>time</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>LinearSVC</td>\n", | |
" <td>{'C': 1.0, 'class_weight': None, 'dual': True,...</td>\n", | |
" <td>0.97791</td>\n", | |
" <td>0.969643</td>\n", | |
" <td>0.0378386</td>\n", | |
" <td>0.00544336</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" name params \\\n", | |
"0 LinearSVC {'C': 1.0, 'class_weight': None, 'dual': True,... \n", | |
"\n", | |
" mean_train_accuracy mean_test_accuracy test_accuracy_3std time \n", | |
"0 0.97791 0.969643 0.0378386 0.00544336 " | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"model_selection(X,y,algorithms)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"After conducting the model selection, it is possible to conduct a hyperparameter search to improve the model performance even further. As this can be quite time consuming, it is recommended to take the default model parameter values." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Train Final Model\n", | |
"Before generating the final predictions, we want to train our model on **all** the data we have available." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"model = LinearSVC()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True,\n", | |
" intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n", | |
" multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n", | |
" verbose=0)" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"model.fit(X,y)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Prediction on Validation Set" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Finally, let's put our model to work and predict on the validation data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Number of Predictions: 140\n", | |
"Prediction Contents: [2 2 4 2 2 4 2 4 4 4]\n" | |
] | |
} | |
], | |
"source": [ | |
"y_pred = model.predict(X_validation)\n", | |
"\n", | |
"print('Number of Predictions:',len(y_pred))\n", | |
"print('Prediction Contents:',y_pred[:10])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Save the predictions as a csv file and name it after your team, so they can be submitted for evaluation." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"pd.Series(y_pred).to_csv(data_directory / 'YOUR_TEAM_NAME.csv',sep=',',index=False)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"**Author**: Daniel Jaeck, Data Scientist at IBM ([email protected])\n", | |
"\n", | |
"Copyright © IBM Corp. 2018. This notebook and its source code are released under the terms of the MIT License." | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.8" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sample_code_number | uniformity_of_cell_shape | uniformity_of_cell_size | clump_thickness | bare_nuclei | cell_size | normal_nucleoli | clump_cohesiveness | nuclear_chromatin | mitoses | class | |
---|---|---|---|---|---|---|---|---|---|---|---|
557583 | 5 | 10 | 10 | 10 | 10 | 10 | 10 | 1 | 1 | 4 | |
1230688 | 7 | 4 | 7 | 4 | 3 | 7 | 7 | 6 | 1 | 4 | |
787451 | 5 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1238777 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1371026 | 5 | 10 | 10 | 10 | 4 | 10 | 5 | 6 | 3 | 4 | |
1320304 | 3 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 2 | |
1355260 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1180523 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | |
1225799 | 10 | 6 | 4 | 3 | 10 | 10 | 9 | 10 | 1 | 4 | |
1216694 | 10 | 8 | 8 | 4 | 10 | 10 | 8 | 1 | 1 | 4 | |
1259008 | 8 | 8 | 9 | 6 | 6 | 3 | 10 | 10 | 1 | 4 | |
1065726 | 5 | 2 | 3 | 4 | 2 | 7 | 3 | 6 | 1 | 4 | |
1182404 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1133991 | 4 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1186936 | 2 | 1 | 3 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | |
1223793 | 6 | 10 | 7 | 7 | 6 | 4 | 8 | 10 | 2 | 4 | |
743348 | 3 | 2 | 2 | 1 | 2 | 1 | 2 | 3 | 1 | 2 | |
1000025 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1318169 | 9 | 10 | 10 | 10 | 10 | 5 | 10 | 10 | 10 | 4 | |
1223967 | 6 | 1 | 3 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1181356 | 5 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 1 | 2 | |
1253955 | 8 | 7 | 4 | 4 | 5 | 3 | 5 | 10 | 1 | 4 | |
1196475 | 3 | 2 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | |
1200847 | 6 | 10 | 10 | 10 | 8 | 10 | 10 | 10 | 7 | 4 | |
1135090 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
188336 | 5 | 3 | 2 | 8 | 5 | 10 | 8 | 1 | 2 | 4 | |
608157 | 10 | 4 | 3 | 10 | 4 | 10 | 10 | 1 | 1 | 4 | |
1306282 | 6 | 6 | 7 | 10 | 3 | 10 | 8 | 10 | 2 | 4 | |
1147044 | 3 | 1 | 1 | 1 | 2 | 2 | 7 | 1 | 1 | 2 | |
888820 | 5 | 10 | 10 | 3 | 7 | 3 | 8 | 10 | 2 | 4 | |
1071760 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1277145 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1115293 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1183246 | 1 | 1 | 1 | 1 | 1 | ? | 2 | 1 | 1 | 2 | |
76389 | 10 | 4 | 7 | 2 | 2 | 8 | 6 | 1 | 1 | 4 | |
1313325 | 4 | 10 | 4 | 7 | 3 | 10 | 9 | 10 | 1 | 4 | |
734111 | 1 | 1 | 1 | 3 | 2 | 3 | 1 | 1 | 1 | 2 | |
1214556 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1276091 | 6 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
695219 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1217952 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1197440 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 7 | 2 | |
733823 | 5 | 4 | 6 | 10 | 2 | 10 | 4 | 1 | 1 | 4 | |
749653 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1237674 | 3 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1295508 | 1 | 1 | 1 | 1 | 2 | 4 | 1 | 1 | 1 | 2 | |
1184241 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1070522 | 3 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1096800 | 6 | 6 | 6 | 9 | 6 | ? | 7 | 8 | 1 | 2 | |
1184184 | 1 | 1 | 1 | 1 | 2 | 5 | 1 | 1 | 1 | 2 | |
1145420 | 6 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1218105 | 5 | 10 | 10 | 9 | 6 | 10 | 7 | 10 | 5 | 4 | |
896404 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1295186 | 10 | 10 | 10 | 1 | 6 | 1 | 2 | 8 | 1 | 4 | |
1321942 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1103608 | 10 | 10 | 10 | 4 | 8 | 1 | 8 | 10 | 1 | 4 | |
776715 | 3 | 1 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 2 | |
704097 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
601265 | 10 | 4 | 4 | 6 | 2 | 10 | 2 | 3 | 1 | 4 | |
1207986 | 5 | 8 | 4 | 10 | 5 | 8 | 9 | 10 | 1 | 4 | |
718641 | 1 | 1 | 1 | 1 | 5 | 1 | 3 | 1 | 1 | 2 | |
1303489 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
666942 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1257938 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
837480 | 7 | 4 | 4 | 3 | 4 | 10 | 6 | 9 | 1 | 4 | |
169356 | 3 | 1 | 1 | 1 | 2 | ? | 3 | 1 | 1 | 2 | |
672113 | 7 | 5 | 6 | 10 | 4 | 10 | 5 | 3 | 1 | 4 | |
1268275 | 9 | 8 | 8 | 9 | 6 | 3 | 4 | 1 | 1 | 4 | |
1193544 | 5 | 7 | 9 | 8 | 6 | 10 | 8 | 10 | 1 | 4 | |
805448 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1321321 | 5 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1232225 | 10 | 4 | 5 | 5 | 5 | 10 | 4 | 1 | 1 | 4 | |
1277792 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1343374 | 10 | 10 | 8 | 10 | 6 | 5 | 10 | 3 | 1 | 4 | |
1325309 | 4 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1182404 | 4 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1368273 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1151734 | 10 | 8 | 7 | 4 | 3 | 10 | 7 | 9 | 1 | 4 | |
1299994 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1184586 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
798429 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
378275 | 10 | 9 | 7 | 3 | 4 | 2 | 7 | 7 | 1 | 4 | |
1026122 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1198641 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1125035 | 9 | 4 | 5 | 10 | 6 | 10 | 4 | 8 | 1 | 4 | |
1067444 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1197270 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
814911 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1354840 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
704168 | 4 | 6 | 5 | 6 | 7 | ? | 4 | 9 | 1 | 2 | |
1002504 | 3 | 2 | 2 | 2 | 2 | 1 | 3 | 2 | 1 | 2 | |
1107684 | 6 | 10 | 5 | 5 | 4 | 10 | 6 | 10 | 1 | 4 | |
810104 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1277268 | 3 | 3 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
535331 | 3 | 1 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | 2 | |
704097 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1313658 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1323477 | 1 | 2 | 1 | 3 | 2 | 1 | 2 | 1 | 1 | 2 | |
1193210 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
693702 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1230175 | 10 | 10 | 10 | 3 | 10 | 10 | 9 | 10 | 1 | 4 | |
657753 | 3 | 1 | 1 | 4 | 3 | 1 | 2 | 2 | 1 | 2 | |
191250 | 10 | 4 | 4 | 10 | 2 | 10 | 5 | 3 | 3 | 4 | |
1219859 | 8 | 10 | 8 | 8 | 4 | 8 | 7 | 7 | 1 | 4 | |
733639 | 3 | 1 | 1 | 1 | 2 | ? | 3 | 1 | 1 | 2 | |
1334659 | 5 | 2 | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | |
1231853 | 4 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1295529 | 2 | 5 | 7 | 6 | 4 | 10 | 7 | 6 | 1 | 4 | |
1204898 | 6 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1112209 | 8 | 10 | 10 | 1 | 3 | 6 | 3 | 9 | 1 | 4 | |
1296025 | 4 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1333104 | 3 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1227081 | 3 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1137156 | 2 | 2 | 2 | 1 | 1 | 1 | 7 | 1 | 1 | 2 | |
411453 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
709287 | 6 | 8 | 7 | 8 | 6 | 8 | 8 | 9 | 1 | 4 | |
646904 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
695091 | 5 | 10 | 10 | 5 | 4 | 5 | 4 | 4 | 1 | 4 | |
1155546 | 2 | 1 | 1 | 2 | 3 | 1 | 2 | 1 | 1 | 2 | |
1047630 | 7 | 4 | 6 | 4 | 6 | 1 | 4 | 3 | 1 | 4 | |
488173 | 1 | 4 | 3 | 10 | 4 | 10 | 5 | 6 | 1 | 4 | |
385103 | 5 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
826923 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1238948 | 8 | 5 | 6 | 2 | 3 | 10 | 6 | 6 | 1 | 4 | |
792744 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1299924 | 3 | 2 | 2 | 2 | 2 | 1 | 4 | 2 | 1 | 2 | |
492561 | 4 | 3 | 2 | 1 | 3 | 1 | 2 | 1 | 1 | 2 | |
721482 | 4 | 4 | 4 | 4 | 6 | 5 | 7 | 3 | 1 | 2 | |
1345593 | 3 | 1 | 1 | 3 | 2 | 1 | 2 | 1 | 1 | 2 | |
1296572 | 10 | 9 | 8 | 7 | 6 | 4 | 7 | 10 | 3 | 4 | |
144888 | 8 | 10 | 10 | 8 | 5 | 10 | 7 | 8 | 1 | 4 | |
431495 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 2 | 1 | 2 | |
1368267 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1213784 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
769612 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1017023 | 4 | 1 | 1 | 3 | 2 | 1 | 3 | 1 | 1 | 2 | |
1115293 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 1 | 1 | 2 | |
666090 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
13454352 | 1 | 1 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1267898 | 5 | 1 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
780555 | 5 | 1 | 1 | 6 | 3 | 1 | 2 | 1 | 1 | 2 | |
1365075 | 4 | 1 | 4 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1133041 | 5 | 3 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | |
1166654 | 10 | 3 | 5 | 1 | 10 | 5 | 3 | 10 | 2 | 4 | |
492268 | 10 | 4 | 6 | 1 | 2 | 10 | 5 | 3 | 1 | 4 | |
1168736 | 5 | 6 | 6 | 2 | 4 | 10 | 3 | 6 | 1 | 4 | |
1197979 | 4 | 1 | 1 | 1 | 2 | 2 | 3 | 2 | 1 | 2 | |
1202812 | 5 | 3 | 3 | 3 | 6 | 10 | 3 | 1 | 1 | 4 | |
536708 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1235807 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1201870 | 4 | 1 | 1 | 3 | 1 | 1 | 2 | 1 | 1 | 2 | |
1266124 | 5 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1113038 | 8 | 2 | 4 | 1 | 5 | 1 | 5 | 4 | 4 | 4 | |
688033 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1121919 | 5 | 1 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1228311 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | 2 | |
1110102 | 10 | 3 | 6 | 2 | 3 | 5 | 4 | 10 | 2 | 4 | |
846423 | 10 | 6 | 3 | 6 | 4 | 10 | 7 | 8 | 4 | 4 | |
1280258 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 2 | |
824249 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1170420 | 1 | 6 | 8 | 10 | 8 | 10 | 5 | 7 | 1 | 4 | |
1056784 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1105257 | 3 | 7 | 7 | 4 | 4 | 9 | 4 | 8 | 1 | 4 | |
1158157 | 5 | 1 | 1 | 1 | 2 | 2 | 2 | 1 | 1 | 2 | |
1297327 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1330439 | 4 | 7 | 8 | 3 | 4 | 10 | 9 | 1 | 1 | 4 | |
1084584 | 5 | 4 | 4 | 9 | 2 | 10 | 5 | 6 | 1 | 4 | |
1043999 | 1 | 1 | 1 | 1 | 2 | 3 | 3 | 1 | 1 | 2 | |
1183911 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1189286 | 10 | 10 | 8 | 6 | 4 | 5 | 8 | 10 | 1 | 4 | |
558538 | 4 | 1 | 3 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1212422 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
763235 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 2 | |
616240 | 5 | 3 | 4 | 3 | 4 | 5 | 4 | 7 | 1 | 2 | |
1169049 | 7 | 3 | 4 | 4 | 3 | 3 | 3 | 2 | 7 | 4 | |
1177512 | 1 | 1 | 1 | 1 | 10 | 1 | 1 | 1 | 1 | 2 | |
1257470 | 10 | 6 | 5 | 8 | 5 | 10 | 8 | 6 | 1 | 4 | |
1070935 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1017122 | 8 | 10 | 10 | 8 | 7 | 10 | 9 | 7 | 1 | 4 | |
324382 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1223282 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
563649 | 8 | 8 | 8 | 1 | 2 | ? | 6 | 10 | 1 | 4 | |
1223003 | 5 | 3 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1324572 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | |
1116715 | 5 | 1 | 1 | 1 | 3 | 2 | 2 | 2 | 1 | 2 | |
1106095 | 4 | 1 | 1 | 3 | 2 | 1 | 3 | 1 | 1 | 2 | |
756136 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1147699 | 3 | 5 | 7 | 8 | 8 | 9 | 7 | 10 | 7 | 4 | |
740492 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1328755 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1258549 | 9 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 1 | 4 | |
1202253 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1294413 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1116192 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1204242 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1041801 | 5 | 3 | 3 | 3 | 2 | 3 | 4 | 4 | 1 | 4 | |
760239 | 10 | 4 | 6 | 4 | 5 | 10 | 7 | 1 | 1 | 4 | |
1286943 | 8 | 10 | 10 | 10 | 7 | 5 | 4 | 8 | 7 | 4 | |
1231387 | 6 | 8 | 7 | 5 | 6 | 8 | 8 | 9 | 2 | 4 | |
1319609 | 3 | 1 | 1 | 2 | 3 | 4 | 1 | 1 | 1 | 2 | |
1165926 | 9 | 6 | 9 | 2 | 10 | 6 | 2 | 9 | 10 | 4 | |
1275807 | 4 | 2 | 4 | 3 | 2 | 2 | 2 | 1 | 1 | 2 | |
1199983 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1199731 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
667204 | 7 | 8 | 7 | 6 | 4 | 3 | 8 | 8 | 4 | 4 | |
1219525 | 8 | 10 | 10 | 10 | 5 | 10 | 8 | 10 | 6 | 4 | |
1099510 | 10 | 4 | 3 | 1 | 3 | 3 | 6 | 5 | 2 | 4 | |
1115282 | 5 | 3 | 5 | 5 | 3 | 3 | 4 | 10 | 1 | 4 | |
809912 | 10 | 3 | 3 | 1 | 2 | 10 | 7 | 6 | 1 | 4 | |
1296263 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1103722 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 2 | |
1321348 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1142706 | 5 | 10 | 10 | 10 | 6 | 10 | 6 | 5 | 2 | 4 | |
1072179 | 10 | 7 | 7 | 3 | 8 | 5 | 7 | 4 | 3 | 4 | |
1197527 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
888523 | 4 | 4 | 4 | 2 | 2 | 3 | 2 | 1 | 1 | 2 | |
1241559 | 10 | 8 | 8 | 2 | 8 | 10 | 4 | 8 | 10 | 4 | |
764974 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 2 | 2 | |
636375 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1206695 | 1 | 5 | 8 | 6 | 5 | 8 | 7 | 10 | 1 | 4 | |
1242364 | 8 | 10 | 10 | 8 | 6 | 9 | 3 | 10 | 10 | 4 | |
1192325 | 5 | 5 | 5 | 6 | 3 | 10 | 3 | 1 | 1 | 4 | |
167528 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 6 | 1 | 2 | |
1240603 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | |
1147748 | 5 | 10 | 6 | 1 | 10 | 4 | 4 | 10 | 10 | 4 | |
1155967 | 5 | 1 | 2 | 10 | 4 | 5 | 2 | 1 | 1 | 2 | |
850831 | 2 | 7 | 10 | 10 | 7 | 10 | 4 | 9 | 4 | 4 | |
1100524 | 6 | 10 | 10 | 2 | 8 | 10 | 7 | 3 | 3 | 4 | |
1212232 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1226012 | 4 | 1 | 1 | 3 | 1 | 5 | 2 | 1 | 1 | 4 | |
1183240 | 4 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
432809 | 3 | 1 | 3 | 1 | 2 | ? | 2 | 1 | 1 | 2 | |
1227210 | 10 | 5 | 5 | 6 | 3 | 10 | 7 | 9 | 2 | 4 | |
1173509 | 4 | 5 | 5 | 10 | 4 | 10 | 7 | 5 | 8 | 4 | |
1333877 | 5 | 4 | 5 | 1 | 8 | 1 | 3 | 6 | 1 | 2 | |
857774 | 4 | 1 | 1 | 1 | 3 | 1 | 2 | 2 | 1 | 2 | |
560680 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1158405 | 1 | 2 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
877943 | 3 | 10 | 3 | 10 | 6 | 10 | 5 | 1 | 4 | 4 | |
1206841 | 10 | 5 | 6 | 10 | 6 | 10 | 7 | 7 | 10 | 4 | |
1111249 | 10 | 6 | 6 | 3 | 4 | 5 | 3 | 6 | 1 | 4 | |
1212422 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1148873 | 3 | 6 | 6 | 6 | 5 | 10 | 6 | 8 | 3 | 4 | |
1080233 | 7 | 6 | 6 | 3 | 2 | 10 | 7 | 1 | 1 | 4 | |
1238915 | 5 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1115762 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1253505 | 2 | 3 | 1 | 1 | 5 | 1 | 1 | 1 | 1 | 2 | |
1073960 | 10 | 10 | 10 | 10 | 6 | 10 | 8 | 1 | 5 | 4 | |
1236043 | 3 | 3 | 2 | 1 | 3 | 1 | 3 | 6 | 1 | 2 | |
1118039 | 5 | 3 | 4 | 1 | 8 | 10 | 4 | 9 | 1 | 4 | |
1113483 | 5 | 2 | 3 | 1 | 6 | 10 | 5 | 1 | 1 | 4 | |
486662 | 2 | 1 | 1 | 2 | 2 | 1 | 3 | 1 | 1 | 2 | |
1222464 | 6 | 10 | 10 | 10 | 4 | 10 | 7 | 10 | 1 | 4 | |
1230994 | 4 | 5 | 5 | 8 | 6 | 10 | 10 | 7 | 1 | 4 | |
353098 | 4 | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 | 2 | |
1132347 | 1 | 1 | 4 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
476903 | 10 | 5 | 7 | 3 | 3 | 7 | 3 | 3 | 8 | 4 | |
1002945 | 5 | 4 | 4 | 5 | 7 | 10 | 3 | 2 | 1 | 2 | |
493452 | 4 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
466906 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1254538 | 8 | 10 | 10 | 10 | 6 | 10 | 10 | 10 | 1 | 4 | |
1268952 | 10 | 10 | 7 | 8 | 7 | 1 | 10 | 10 | 3 | 4 | |
685977 | 5 | 3 | 4 | 1 | 4 | 1 | 3 | 1 | 1 | 2 | |
529329 | 10 | 10 | 10 | 10 | 10 | 10 | 4 | 10 | 10 | 4 | |
1165297 | 2 | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 | 2 | |
734111 | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 2 | |
412300 | 10 | 4 | 5 | 4 | 3 | 5 | 7 | 3 | 1 | 4 | |
1287775 | 5 | 1 | 1 | 2 | 2 | 2 | 3 | 1 | 1 | 2 | |
1123061 | 6 | 10 | 2 | 8 | 10 | 2 | 7 | 8 | 10 | 4 | |
1333063 | 5 | 1 | 3 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1016634 | 2 | 3 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1272039 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1102573 | 5 | 6 | 5 | 6 | 10 | 1 | 3 | 1 | 1 | 4 | |
1266154 | 8 | 7 | 8 | 2 | 4 | 2 | 5 | 10 | 1 | 4 | |
1018099 | 1 | 1 | 1 | 1 | 2 | 10 | 3 | 1 | 1 | 2 | |
1350319 | 5 | 7 | 4 | 1 | 6 | 1 | 7 | 10 | 3 | 4 | |
1057013 | 8 | 4 | 5 | 1 | 2 | ? | 7 | 3 | 1 | 4 | |
1238777 | 6 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1190485 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
673637 | 3 | 1 | 1 | 1 | 2 | 5 | 5 | 1 | 1 | 2 | |
1002025 | 1 | 1 | 1 | 3 | 1 | 3 | 1 | 1 | 1 | 2 | |
1369821 | 10 | 10 | 10 | 10 | 5 | 10 | 10 | 10 | 7 | 4 | |
1174057 | 1 | 1 | 2 | 2 | 2 | 1 | 3 | 1 | 1 | 2 | |
1174841 | 5 | 3 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1168736 | 10 | 10 | 10 | 10 | 10 | 1 | 8 | 8 | 8 | 4 | |
770066 | 5 | 2 | 2 | 2 | 2 | 1 | 2 | 2 | 1 | 2 | |
1114570 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | |
1171710 | 6 | 5 | 4 | 4 | 3 | 9 | 7 | 8 | 3 | 4 | |
1334667 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1214966 | 9 | 7 | 7 | 5 | 5 | 10 | 7 | 8 | 3 | 4 | |
1054593 | 10 | 5 | 5 | 3 | 6 | 7 | 7 | 10 | 1 | 4 | |
1205138 | 5 | 8 | 8 | 8 | 5 | 10 | 7 | 8 | 1 | 4 | |
452264 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
314428 | 7 | 9 | 4 | 10 | 10 | 3 | 5 | 3 | 3 | 4 | |
1105524 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1143978 | 4 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | |
1116116 | 9 | 10 | 10 | 1 | 10 | 8 | 3 | 3 | 1 | 4 | |
1117152 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1048672 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1258556 | 5 | 3 | 6 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1173514 | 1 | 1 | 1 | 1 | 4 | 3 | 1 | 1 | 1 | 2 | |
1042252 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
428598 | 1 | 1 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1320077 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1116132 | 6 | 3 | 4 | 1 | 5 | 2 | 3 | 9 | 1 | 4 | |
1221863 | 10 | 10 | 10 | 10 | 7 | 10 | 7 | 10 | 4 | 4 | |
1070935 | 3 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1106829 | 7 | 8 | 7 | 2 | 4 | 8 | 3 | 8 | 2 | 4 | |
897172 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1345452 | 1 | 1 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
183936 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
625201 | 8 | 2 | 1 | 1 | 5 | 1 | 1 | 1 | 1 | 2 | |
1211594 | 3 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1213383 | 5 | 1 | 1 | 4 | 2 | 1 | 3 | 1 | 1 | 2 | |
1299924 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
474162 | 8 | 7 | 8 | 5 | 5 | 10 | 9 | 10 | 1 | 4 | |
1336798 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1238021 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1298416 | 10 | 6 | 6 | 2 | 4 | 10 | 9 | 7 | 1 | 4 | |
1239420 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
752904 | 10 | 1 | 1 | 1 | 2 | 10 | 5 | 4 | 1 | 4 | |
654546 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 8 | 2 | |
1044572 | 8 | 7 | 5 | 10 | 7 | 9 | 5 | 5 | 4 | 4 | |
636437 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
560680 | 3 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
760001 | 8 | 10 | 3 | 2 | 6 | 4 | 3 | 10 | 1 | 4 | |
1321931 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
555977 | 5 | 6 | 6 | 8 | 6 | 10 | 4 | 10 | 4 | 4 | |
1276091 | 1 | 3 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | |
1293439 | 3 | 2 | 2 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1182404 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1347943 | 5 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 2 | 2 | |
1347749 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
803531 | 5 | 10 | 10 | 10 | 5 | 2 | 8 | 5 | 1 | 4 | |
1100524 | 6 | 10 | 10 | 2 | 8 | 10 | 7 | 3 | 3 | 4 | |
1257648 | 4 | 3 | 3 | 1 | 2 | 1 | 3 | 3 | 1 | 2 | |
1061990 | 1 | 1 | 3 | 2 | 2 | 1 | 3 | 1 | 1 | 2 | |
1268766 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1253917 | 4 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | |
1330361 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1211202 | 7 | 5 | 10 | 10 | 10 | 10 | 4 | 10 | 3 | 4 | |
1217264 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
822829 | 8 | 10 | 10 | 10 | 6 | 10 | 10 | 10 | 10 | 4 | |
1238464 | 1 | 1 | 1 | 1 | 1 | ? | 2 | 1 | 1 | 2 | |
1325159 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
63375 | 9 | 1 | 2 | 6 | 4 | 10 | 7 | 7 | 2 | 4 | |
1022257 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1157734 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1239347 | 8 | 7 | 8 | 5 | 10 | 10 | 7 | 2 | 1 | 4 | |
871549 | 5 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1116192 | 5 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
867392 | 4 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
873549 | 10 | 3 | 5 | 4 | 3 | 7 | 3 | 5 | 3 | 4 | |
1208301 | 1 | 2 | 3 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1197993 | 5 | 6 | 7 | 8 | 8 | 10 | 3 | 10 | 3 | 4 | |
1299596 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1219406 | 5 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | 2 | |
606722 | 5 | 5 | 7 | 8 | 6 | 10 | 7 | 4 | 1 | 4 | |
1255384 | 3 | 2 | 2 | 3 | 2 | 3 | 3 | 1 | 1 | 2 | |
1277792 | 5 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1017023 | 6 | 3 | 3 | 5 | 3 | 10 | 3 | 5 | 3 | 2 | |
1183596 | 3 | 1 | 3 | 1 | 3 | 4 | 1 | 1 | 1 | 2 | |
841769 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1302428 | 5 | 3 | 2 | 4 | 2 | 1 | 1 | 1 | 1 | 2 | |
1315807 | 5 | 10 | 10 | 10 | 10 | 2 | 10 | 10 | 10 | 4 | |
1311108 | 1 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1182410 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1290203 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
640712 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1241679 | 9 | 8 | 8 | 5 | 6 | 2 | 4 | 10 | 4 | 4 | |
1071084 | 3 | 3 | 2 | 2 | 3 | 1 | 1 | 2 | 3 | 2 | |
798429 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
128059 | 1 | 1 | 1 | 1 | 2 | 5 | 5 | 1 | 1 | 2 | |
486283 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1339781 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1074610 | 2 | 1 | 1 | 2 | 2 | 1 | 3 | 1 | 1 | 2 | |
390840 | 8 | 4 | 7 | 1 | 3 | 10 | 3 | 9 | 2 | 4 | |
1176881 | 7 | 5 | 3 | 7 | 4 | 10 | 7 | 5 | 5 | 4 | |
1315506 | 4 | 8 | 6 | 3 | 4 | 10 | 7 | 1 | 1 | 4 | |
1080185 | 10 | 10 | 10 | 8 | 6 | 1 | 8 | 9 | 1 | 4 | |
342245 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1324681 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
869828 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | 2 | |
1058849 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1113906 | 9 | 5 | 5 | 2 | 2 | 2 | 5 | 1 | 1 | 4 | |
1196263 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1240337 | 5 | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | |
1108449 | 5 | 3 | 3 | 4 | 2 | 4 | 3 | 4 | 1 | 4 | |
1288608 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1223426 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1298360 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
769612 | 3 | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 | 2 | |
333093 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | 1 | 1 | 2 | |
434518 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1084139 | 6 | 3 | 2 | 1 | 3 | 4 | 4 | 1 | 1 | 4 | |
1158247 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | |
1236837 | 2 | 3 | 2 | 2 | 2 | 2 | 3 | 1 | 1 | 2 | |
521441 | 5 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | |
1241232 | 3 | 1 | 4 | 1 | 2 | ? | 3 | 1 | 1 | 2 | |
684955 | 2 | 1 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | 2 | |
1206089 | 2 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | 2 | |
1218860 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | 2 | |
1105524 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1173235 | 3 | 3 | 2 | 1 | 2 | 3 | 3 | 1 | 1 | 2 | |
1354840 | 5 | 3 | 2 | 1 | 3 | 1 | 1 | 1 | 1 | 2 | |
1187805 | 8 | 8 | 7 | 4 | 10 | 10 | 7 | 8 | 7 | 4 | |
1352663 | 5 | 4 | 6 | 8 | 4 | 1 | 8 | 10 | 1 | 4 | |
1238410 | 2 | 3 | 1 | 1 | 3 | 1 | 1 | 1 | 1 | 2 | |
142932 | 7 | 6 | 10 | 5 | 3 | 10 | 9 | 10 | 2 | 4 | |
411453 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1261751 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 2 | |
1200952 | 5 | 8 | 7 | 7 | 10 | 10 | 5 | 7 | 1 | 4 | |
1174131 | 10 | 10 | 10 | 2 | 10 | 10 | 5 | 3 | 3 | 4 | |
1239232 | 3 | 3 | 2 | 6 | 3 | 3 | 3 | 5 | 1 | 2 | |
543558 | 6 | 1 | 3 | 1 | 4 | 5 | 5 | 10 | 1 | 4 | |
1114570 | 5 | 3 | 3 | 2 | 3 | 1 | 3 | 1 | 1 | 2 | |
1350423 | 5 | 10 | 10 | 8 | 5 | 5 | 7 | 10 | 1 | 4 | |
1079304 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1108370 | 9 | 5 | 8 | 1 | 2 | 3 | 2 | 1 | 5 | 4 | |
183913 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1049837 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
832567 | 4 | 2 | 3 | 5 | 3 | 8 | 7 | 6 | 1 | 4 | |
1276091 | 5 | 1 | 1 | 3 | 4 | 1 | 3 | 2 | 1 | 2 | |
1031608 | 2 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
866325 | 8 | 10 | 5 | 3 | 8 | 4 | 4 | 10 | 3 | 4 | |
1212251 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1165790 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1199219 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 2 | |
1246562 | 10 | 2 | 2 | 1 | 2 | 6 | 1 | 1 | 2 | 4 | |
1216947 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1296593 | 5 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1182404 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1171710 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 3 | 1 | 2 | |
1243256 | 10 | 4 | 3 | 2 | 3 | 10 | 5 | 3 | 2 | 4 | |
95719 | 6 | 10 | 10 | 10 | 8 | 10 | 7 | 10 | 7 | 4 | |
1313982 | 4 | 3 | 1 | 1 | 2 | 1 | 4 | 8 | 1 | 2 | |
1220330 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1344449 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
1224565 | 6 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1228152 | 8 | 9 | 9 | 5 | 3 | 5 | 7 | 7 | 1 | 4 | |
1180194 | 5 | 10 | 8 | 10 | 8 | 10 | 3 | 6 | 3 | 4 | |
428903 | 7 | 2 | 4 | 1 | 3 | 4 | 3 | 3 | 1 | 4 | |
1204558 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
640744 | 10 | 10 | 10 | 7 | 9 | 10 | 7 | 10 | 10 | 4 | |
1190394 | 4 | 1 | 1 | 1 | 2 | 3 | 1 | 1 | 1 | 2 | |
1294562 | 10 | 8 | 10 | 1 | 3 | 10 | 5 | 1 | 1 | 4 | |
1297522 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
508234 | 7 | 4 | 5 | 10 | 2 | 10 | 3 | 8 | 2 | 4 | |
1343068 | 8 | 4 | 4 | 1 | 6 | 10 | 2 | 5 | 2 | 4 | |
1083817 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1193683 | 1 | 1 | 2 | 1 | 3 | ? | 1 | 1 | 1 | 2 | |
1326892 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
878358 | 5 | 7 | 10 | 6 | 5 | 10 | 7 | 5 | 1 | 4 | |
603148 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
830690 | 5 | 2 | 2 | 2 | 3 | 1 | 1 | 3 | 1 | 2 | |
1184840 | 1 | 1 | 3 | 1 | 2 | ? | 2 | 1 | 1 | 2 | |
1197080 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 2 | 1 | 2 | |
1311033 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1050718 | 6 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1222936 | 8 | 7 | 8 | 7 | 5 | 5 | 5 | 10 | 2 | 4 | |
1339781 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
324427 | 10 | 8 | 8 | 2 | 3 | 4 | 8 | 7 | 8 | 4 | |
733639 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1136142 | 2 | 1 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | 2 | |
1225382 | 6 | 2 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1202125 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1171795 | 1 | 3 | 1 | 2 | 2 | 2 | 5 | 3 | 2 | 2 | |
636130 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1177399 | 8 | 3 | 5 | 4 | 5 | 10 | 1 | 6 | 2 | 4 | |
1160476 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1091262 | 2 | 5 | 3 | 3 | 6 | 7 | 7 | 5 | 1 | 4 | |
1238633 | 10 | 10 | 10 | 6 | 8 | 4 | 8 | 5 | 1 | 4 | |
730881 | 7 | 6 | 3 | 2 | 5 | 10 | 7 | 4 | 6 | 4 | |
1218982 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
61634 | 5 | 4 | 3 | 1 | 2 | ? | 2 | 3 | 1 | 2 | |
827627 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1270479 | 5 | 1 | 3 | 3 | 2 | 2 | 2 | 3 | 1 | 2 | |
1041043 | 4 | 1 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
831268 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 2 | |
1168359 | 8 | 2 | 3 | 1 | 6 | 3 | 7 | 1 | 1 | 4 | |
1193091 | 1 | 2 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1059552 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1293966 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1260659 | 3 | 1 | 4 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1081791 | 6 | 2 | 1 | 1 | 1 | 1 | 7 | 1 | 1 | 2 | |
690557 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
654546 | 1 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1116116 | 9 | 10 | 10 | 1 | 10 | 8 | 3 | 3 | 1 | 4 | |
160296 | 5 | 8 | 8 | 10 | 5 | 10 | 8 | 10 | 3 | 4 | |
1116998 | 10 | 4 | 2 | 1 | 3 | 2 | 4 | 3 | 10 | 4 | |
1173347 | 1 | 1 | 1 | 1 | 2 | 5 | 1 | 1 | 1 | 2 | |
1131411 | 1 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | |
1190546 | 2 | 1 | 1 | 1 | 2 | 5 | 1 | 1 | 1 | 2 | |
1170945 | 3 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | |
534555 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1171578 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
561477 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1352848 | 3 | 10 | 7 | 8 | 5 | 8 | 7 | 4 | 1 | 4 | |
1334071 | 4 | 1 | 1 | 1 | 2 | 3 | 2 | 1 | 1 | 2 | |
1143978 | 5 | 2 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
369565 | 4 | 1 | 1 | 1 | 3 | 1 | 1 | 1 | 1 | 2 | |
1213375 | 8 | 4 | 4 | 5 | 4 | 7 | 7 | 8 | 2 | 2 | |
1110503 | 5 | 5 | 5 | 8 | 10 | 8 | 7 | 3 | 7 | 4 | |
1200892 | 8 | 6 | 5 | 4 | 3 | 10 | 6 | 1 | 1 | 4 | |
1365328 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
714039 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1182404 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | |
653777 | 8 | 3 | 4 | 9 | 3 | 10 | 3 | 3 | 1 | 4 | |
527337 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
806423 | 8 | 5 | 5 | 5 | 2 | 10 | 4 | 3 | 1 | 4 | |
1276091 | 3 | 1 | 1 | 3 | 1 | 1 | 3 | 1 | 1 | 2 | |
1306339 | 4 | 4 | 2 | 1 | 2 | 5 | 2 | 1 | 2 | 2 | |
1210963 | 10 | 10 | 10 | 8 | 6 | 8 | 7 | 10 | 1 | 4 | |
1285722 | 4 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | |
1368882 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1177027 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1173216 | 10 | 10 | 10 | 3 | 10 | 8 | 8 | 1 | 1 | 4 | |
320675 | 3 | 3 | 5 | 2 | 3 | 10 | 7 | 1 | 1 | 4 | |
1190386 | 4 | 6 | 6 | 5 | 7 | 6 | 7 | 7 | 3 | 4 | |
1299596 | 6 | 6 | 6 | 5 | 4 | 10 | 7 | 6 | 2 | 4 | |
1061990 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
888169 | 3 | 2 | 2 | 1 | 4 | 3 | 2 | 1 | 1 | 2 | |
1158247 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
320675 | 3 | 3 | 5 | 2 | 3 | 10 | 7 | 1 | 1 | 4 | |
1276091 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1173681 | 3 | 2 | 1 | 1 | 2 | 2 | 3 | 1 | 1 | 2 | |
1149548 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1353092 | 3 | 2 | 1 | 2 | 2 | 1 | 3 | 1 | 1 | 2 | |
1214092 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1201936 | 5 | 10 | 10 | 3 | 8 | 1 | 5 | 10 | 3 | 4 | |
1229929 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1183983 | 9 | 5 | 5 | 4 | 4 | 5 | 4 | 3 | 3 | 4 | |
1234554 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1321264 | 5 | 2 | 2 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | |
1131294 | 1 | 1 | 2 | 1 | 2 | 2 | 4 | 2 | 1 | 2 | |
1156272 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1174057 | 4 | 2 | 1 | 1 | 2 | 2 | 3 | 1 | 1 | 2 | |
1289391 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1198641 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1113061 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1198128 | 10 | 8 | 10 | 10 | 6 | 1 | 3 | 1 | 10 | 4 | |
797327 | 6 | 5 | 5 | 8 | 4 | 10 | 3 | 4 | 1 | 4 | |
242970 | 5 | 7 | 7 | 1 | 5 | 8 | 3 | 4 | 1 | 2 | |
1331412 | 5 | 7 | 10 | 10 | 5 | 10 | 10 | 10 | 1 | 4 | |
1170419 | 10 | 10 | 10 | 8 | 2 | 10 | 4 | 1 | 1 | 4 | |
1176187 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1152331 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
846832 | 3 | 4 | 5 | 3 | 7 | 3 | 4 | 6 | 1 | 2 | |
1227244 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1205579 | 8 | 7 | 6 | 4 | 4 | 10 | 5 | 1 | 1 | 4 | |
1033078 | 4 | 2 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
456282 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1321942 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1223543 | 1 | 2 | 1 | 3 | 2 | 1 | 1 | 2 | 1 | 2 | |
566509 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 2 | |
1350568 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1073836 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 2 | |
1217051 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | 2 | |
1110524 | 10 | 5 | 5 | 6 | 8 | 8 | 7 | 1 | 1 | 4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sample_code_number | uniformity_of_cell_shape | uniformity_of_cell_size | clump_thickness | bare_nuclei | cell_size | normal_nucleoli | clump_cohesiveness | nuclear_chromatin | mitoses | class | |
---|---|---|---|---|---|---|---|---|---|---|---|
1056171 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1179818 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1334015 | 7 | 8 | 8 | 7 | 3 | 10 | 7 | 2 | 3 | ||
1287282 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1265899 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1174428 | 5 | 3 | 5 | 1 | 8 | 10 | 5 | 3 | 1 | ||
1133136 | 3 | 1 | 1 | 1 | 2 | 3 | 3 | 1 | 1 | ||
1218741 | 10 | 10 | 9 | 3 | 7 | 5 | 3 | 5 | 1 | ||
1166630 | 7 | 5 | 6 | 10 | 5 | 10 | 7 | 9 | 4 | ||
1198641 | 10 | 10 | 6 | 3 | 3 | 10 | 4 | 3 | 2 | ||
677910 | 5 | 2 | 2 | 4 | 2 | 4 | 1 | 1 | 1 | ||
897471 | 4 | 8 | 6 | 4 | 3 | 4 | 10 | 6 | 1 | ||
1126417 | 10 | 6 | 4 | 1 | 3 | 4 | 3 | 2 | 3 | ||
1054590 | 7 | 3 | 2 | 10 | 5 | 10 | 5 | 4 | 4 | ||
1203096 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | ||
706426 | 5 | 5 | 5 | 2 | 5 | 10 | 4 | 3 | 1 | ||
836433 | 5 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | ||
1124651 | 1 | 3 | 3 | 2 | 2 | 1 | 7 | 2 | 1 | ||
1185609 | 3 | 4 | 5 | 2 | 6 | 8 | 4 | 1 | 1 | ||
274137 | 8 | 8 | 9 | 4 | 5 | 10 | 7 | 8 | 1 | ||
566346 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 3 | 1 | ||
1016277 | 6 | 8 | 8 | 1 | 3 | 4 | 3 | 7 | 1 | ||
1301945 | 5 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
1035283 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | ||
1257815 | 5 | 1 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1226612 | 7 | 5 | 6 | 3 | 3 | 8 | 7 | 4 | 1 | ||
859350 | 8 | 10 | 10 | 7 | 10 | 10 | 7 | 3 | 8 | ||
859164 | 5 | 3 | 3 | 1 | 3 | 3 | 3 | 3 | 3 | ||
807657 | 6 | 1 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | ||
1257608 | 6 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
1227481 | 10 | 5 | 7 | 4 | 4 | 10 | 8 | 9 | 1 | ||
466906 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1188472 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | ||
736150 | 10 | 4 | 3 | 10 | 3 | 10 | 7 | 1 | 2 | ||
654244 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | ||
1050670 | 10 | 7 | 7 | 6 | 4 | 10 | 4 | 1 | 2 | ||
1328331 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1211265 | 3 | 10 | 8 | 7 | 6 | 9 | 9 | 3 | 8 | ||
493452 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1293439 | 6 | 9 | 7 | 5 | 5 | 8 | 4 | 2 | 1 | ||
855524 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1298484 | 10 | 3 | 4 | 5 | 3 | 10 | 4 | 1 | 1 | ||
1240603 | 3 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
1167471 | 4 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1320141 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1206314 | 1 | 2 | 3 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1043068 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1239967 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1156948 | 3 | 1 | 1 | 2 | 2 | 1 | 1 | 1 | 1 | ||
1222047 | 10 | 10 | 10 | 10 | 3 | 10 | 10 | 6 | 1 | ||
1174009 | 5 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | ||
385103 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
837082 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1257200 | 10 | 10 | 10 | 7 | 10 | 10 | 8 | 2 | 1 | ||
1344121 | 8 | 10 | 4 | 4 | 8 | 10 | 8 | 2 | 1 | ||
822829 | 7 | 6 | 4 | 8 | 10 | 10 | 9 | 5 | 3 | ||
1238186 | 4 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1348851 | 3 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1196295 | 9 | 9 | 10 | 3 | 6 | 10 | 7 | 10 | 6 | ||
1223306 | 3 | 1 | 1 | 1 | 2 | 4 | 1 | 1 | 1 | ||
1164066 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1171845 | 8 | 6 | 4 | 3 | 5 | 9 | 3 | 1 | 1 | ||
1311875 | 5 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | ||
145447 | 8 | 4 | 4 | 1 | 2 | 9 | 3 | 3 | 1 | ||
1320077 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
1156017 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1049815 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
263538 | 5 | 10 | 10 | 6 | 10 | 10 | 10 | 6 | 5 | ||
877291 | 6 | 10 | 10 | 10 | 10 | 10 | 8 | 10 | 10 | ||
1181685 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | ||
695091 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1182404 | 5 | 1 | 4 | 1 | 2 | 1 | 3 | 2 | 1 | ||
1185610 | 1 | 1 | 1 | 1 | 3 | 2 | 2 | 1 | 1 | ||
1218860 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1 | 1 | ||
785208 | 5 | 4 | 6 | 6 | 4 | 10 | 4 | 3 | 1 | ||
1148278 | 3 | 3 | 6 | 4 | 5 | 8 | 4 | 4 | 1 | ||
1187457 | 3 | 1 | 1 | 3 | 8 | 1 | 5 | 8 | 1 | ||
785615 | 8 | 6 | 7 | 3 | 3 | 10 | 3 | 4 | 2 | ||
1299161 | 4 | 8 | 7 | 10 | 4 | 10 | 7 | 5 | 1 | ||
1180831 | 3 | 1 | 1 | 1 | 3 | 1 | 2 | 1 | 1 | ||
1121732 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 2 | 1 | ||
1217717 | 5 | 1 | 1 | 6 | 3 | 1 | 1 | 1 | 1 | ||
1057067 | 1 | 1 | 1 | 1 | 1 | ? | 1 | 1 | 1 | ||
897471 | 4 | 8 | 8 | 5 | 4 | 5 | 10 | 4 | 1 | ||
1277629 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | ||
691628 | 8 | 6 | 4 | 10 | 10 | 1 | 3 | 5 | 1 | ||
1176406 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1066373 | 3 | 2 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | ||
1189266 | 7 | 2 | 4 | 1 | 6 | 10 | 5 | 4 | 3 | ||
1200772 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1241035 | 7 | 8 | 3 | 7 | 4 | 5 | 7 | 8 | 2 | ||
1120559 | 8 | 3 | 8 | 3 | 4 | 9 | 8 | 9 | 8 | ||
1268804 | 3 | 1 | 1 | 1 | 2 | 5 | 1 | 1 | 1 | ||
1172152 | 10 | 3 | 3 | 10 | 2 | 10 | 7 | 3 | 3 | ||
1371920 | 5 | 1 | 1 | 1 | 2 | 1 | 3 | 2 | 1 | ||
1183516 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
8233704 | 4 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | ||
1167439 | 2 | 3 | 4 | 4 | 2 | 5 | 2 | 5 | 1 | ||
832226 | 3 | 4 | 4 | 10 | 5 | 1 | 3 | 3 | 1 | ||
1168278 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1119189 | 5 | 8 | 9 | 4 | 3 | 10 | 7 | 1 | 1 | ||
1272166 | 5 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1197510 | 5 | 1 | 1 | 1 | 2 | ? | 3 | 1 | 1 | ||
1033078 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 5 | ||
1268313 | 5 | 1 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | ||
1066979 | 5 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1287971 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1140597 | 7 | 1 | 2 | 3 | 2 | 1 | 2 | 1 | 1 | ||
1269574 | 4 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
659642 | 10 | 8 | 4 | 4 | 4 | 10 | 3 | 10 | 4 | ||
1318671 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1196915 | 10 | 7 | 7 | 4 | 5 | 10 | 5 | 7 | 2 | ||
1213273 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1294261 | 4 | 10 | 8 | 5 | 4 | 1 | 10 | 1 | 1 | ||
1178580 | 5 | 1 | 3 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1257366 | 3 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1036172 | 2 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1277018 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1175937 | 5 | 4 | 6 | 7 | 9 | 7 | 8 | 10 | 1 | ||
814265 | 2 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | ||
1076352 | 3 | 6 | 4 | 10 | 3 | 3 | 3 | 4 | 1 | ||
1173347 | 8 | 3 | 3 | 1 | 2 | 2 | 3 | 2 | 1 | ||
635844 | 8 | 4 | 10 | 5 | 4 | 4 | 7 | 10 | 1 | ||
1018561 | 2 | 1 | 2 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1015425 | 3 | 1 | 1 | 1 | 2 | 2 | 3 | 1 | 1 | ||
352431 | 10 | 5 | 10 | 3 | 5 | 8 | 7 | 8 | 3 | ||
527363 | 8 | 10 | 10 | 10 | 8 | 10 | 10 | 7 | 3 | ||
1304595 | 3 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | ||
1075123 | 3 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 1 | ||
255644 | 10 | 5 | 8 | 10 | 3 | 10 | 5 | 1 | 3 | ||
1333495 | 3 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | ||
1224329 | 1 | 1 | 1 | 2 | 2 | 1 | 3 | 1 | 1 | ||
1331405 | 4 | 1 | 1 | 1 | 2 | 1 | 3 | 2 | 1 | ||
606140 | 1 | 1 | 1 | 1 | 2 | ? | 2 | 1 | 1 | ||
1181567 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
1201834 | 2 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1231706 | 8 | 4 | 6 | 3 | 3 | 1 | 4 | 3 | 1 | ||
1285531 | 1 | 1 | 1 | 1 | 2 | 1 | 3 | 1 | 1 | ||
1096352 | 6 | 3 | 3 | 3 | 3 | 2 | 6 | 1 | 1 | ||
303213 | 10 | 4 | 4 | 10 | 6 | 10 | 5 | 5 | 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment