{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from pandas import read_csv"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# 加载数据集\n",
"filename = 'pima-indians-diabetes.csv'\n",
"dataset = read_csv(filename, header=None)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(768, 9)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 显示数据实例个数、属性个数\n",
"dataset.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 6 | \n",
" 148 | \n",
" 72 | \n",
" 35 | \n",
" 0 | \n",
" 33.6 | \n",
" 0.627 | \n",
" 50 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" 1 | \n",
" 85 | \n",
" 66 | \n",
" 29 | \n",
" 0 | \n",
" 26.6 | \n",
" 0.351 | \n",
" 31 | \n",
" 0 | \n",
"
\n",
" \n",
" 2 | \n",
" 8 | \n",
" 183 | \n",
" 64 | \n",
" 0 | \n",
" 0 | \n",
" 23.3 | \n",
" 0.672 | \n",
" 32 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" 1 | \n",
" 89 | \n",
" 66 | \n",
" 23 | \n",
" 94 | \n",
" 28.1 | \n",
" 0.167 | \n",
" 21 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" 0 | \n",
" 137 | \n",
" 40 | \n",
" 35 | \n",
" 168 | \n",
" 43.1 | \n",
" 2.288 | \n",
" 33 | \n",
" 1 | \n",
"
\n",
" \n",
" 5 | \n",
" 5 | \n",
" 116 | \n",
" 74 | \n",
" 0 | \n",
" 0 | \n",
" 25.6 | \n",
" 0.201 | \n",
" 30 | \n",
" 0 | \n",
"
\n",
" \n",
" 6 | \n",
" 3 | \n",
" 78 | \n",
" 50 | \n",
" 32 | \n",
" 88 | \n",
" 31.0 | \n",
" 0.248 | \n",
" 26 | \n",
" 1 | \n",
"
\n",
" \n",
" 7 | \n",
" 10 | \n",
" 115 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 35.3 | \n",
" 0.134 | \n",
" 29 | \n",
" 0 | \n",
"
\n",
" \n",
" 8 | \n",
" 2 | \n",
" 197 | \n",
" 70 | \n",
" 45 | \n",
" 543 | \n",
" 30.5 | \n",
" 0.158 | \n",
" 53 | \n",
" 1 | \n",
"
\n",
" \n",
" 9 | \n",
" 8 | \n",
" 125 | \n",
" 96 | \n",
" 0 | \n",
" 0 | \n",
" 0.0 | \n",
" 0.232 | \n",
" 54 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6 7 8\n",
"0 6 148 72 35 0 33.6 0.627 50 1\n",
"1 1 85 66 29 0 26.6 0.351 31 0\n",
"2 8 183 64 0 0 23.3 0.672 32 1\n",
"3 1 89 66 23 94 28.1 0.167 21 0\n",
"4 0 137 40 35 168 43.1 2.288 33 1\n",
"5 5 116 74 0 0 25.6 0.201 30 0\n",
"6 3 78 50 32 88 31.0 0.248 26 1\n",
"7 10 115 0 0 0 35.3 0.134 29 0\n",
"8 2 197 70 45 543 30.5 0.158 53 1\n",
"9 8 125 96 0 0 0.0 0.232 54 1"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 前10个样本情况\n",
"dataset.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
" 768.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 3.845052 | \n",
" 120.894531 | \n",
" 69.105469 | \n",
" 20.536458 | \n",
" 79.799479 | \n",
" 31.992578 | \n",
" 0.471876 | \n",
" 33.240885 | \n",
" 0.348958 | \n",
"
\n",
" \n",
" std | \n",
" 3.369578 | \n",
" 31.972618 | \n",
" 19.355807 | \n",
" 15.952218 | \n",
" 115.244002 | \n",
" 7.884160 | \n",
" 0.331329 | \n",
" 11.760232 | \n",
" 0.476951 | \n",
"
\n",
" \n",
" min | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.078000 | \n",
" 21.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 1.000000 | \n",
" 99.000000 | \n",
" 62.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 27.300000 | \n",
" 0.243750 | \n",
" 24.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 3.000000 | \n",
" 117.000000 | \n",
" 72.000000 | \n",
" 23.000000 | \n",
" 30.500000 | \n",
" 32.000000 | \n",
" 0.372500 | \n",
" 29.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 6.000000 | \n",
" 140.250000 | \n",
" 80.000000 | \n",
" 32.000000 | \n",
" 127.250000 | \n",
" 36.600000 | \n",
" 0.626250 | \n",
" 41.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 17.000000 | \n",
" 199.000000 | \n",
" 122.000000 | \n",
" 99.000000 | \n",
" 846.000000 | \n",
" 67.100000 | \n",
" 2.420000 | \n",
" 81.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 \\\n",
"count 768.000000 768.000000 768.000000 768.000000 768.000000 768.000000 \n",
"mean 3.845052 120.894531 69.105469 20.536458 79.799479 31.992578 \n",
"std 3.369578 31.972618 19.355807 15.952218 115.244002 7.884160 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 1.000000 99.000000 62.000000 0.000000 0.000000 27.300000 \n",
"50% 3.000000 117.000000 72.000000 23.000000 30.500000 32.000000 \n",
"75% 6.000000 140.250000 80.000000 32.000000 127.250000 36.600000 \n",
"max 17.000000 199.000000 122.000000 99.000000 846.000000 67.100000 \n",
"\n",
" 6 7 8 \n",
"count 768.000000 768.000000 768.000000 \n",
"mean 0.471876 33.240885 0.348958 \n",
"std 0.331329 11.760232 0.476951 \n",
"min 0.078000 21.000000 0.000000 \n",
"25% 0.243750 24.000000 0.000000 \n",
"50% 0.372500 29.000000 0.000000 \n",
"75% 0.626250 41.000000 1.000000 \n",
"max 2.420000 81.000000 1.000000 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 显示每个属性的统计概要(包括总数,均值,最小值,最大值以及一些百分比)\n",
"dataset.describe()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from matplotlib import pyplot"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"