数据挖掘感念与技术第三版-----------课后习题(部分)


第二章

2.2假设所分析的数据包括属性age,它在数据元组中的值(以递增序)为13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70.

(a)该数据的均值是多少?中位数是什么?

import numpy as np
age = [13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70]
#均值
print('均值为:',np.average(age))
#中位数
print('中位数:',np.median(age))

该数的均值为29.963,中位数为25

(b)该数据的众数是什么?该数据的模态(即二模、三模等)。

import numpy as np
age = [13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70]
#众数
print('众数:',stats.mode(age)[0][0])

该数的众数为25和35,即该数据是一个双峰的分布,即二模。

(c)该数据的中列数是多少?

该数的中列数是(70+13)/2=41.5

         (d)你能(粗略地)找出该数据的第一个四分位(Q1)和第三个四分位数(Q3)吗?

第一个四分位数为:⌈27/4⌉=7处,Q1 = 20,第三个四分位数为:⌈27/4⌉ * 3 = 21处,Q3 = 35

(e)给出该数据的五数概括

五数概括:中位数(Q2)、四分位数(Q1)和(Q3)、最小值、最大值组成

(f)绘制该数据的盒图

import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
import matplotlib
age = [13,15,16,16,19,20,20,21,22,22,25,25,25,25,30,33,33,35,35,35,35,36,40,45,46,52,70]
#盒图
df = pd.DataFrame(age)
df.plot.box(title = 'boxplot of age')
plt.grid(linestyle='--',alpha=0.3)
plt.show()

(g)分位数—分位数图分位数图有何不同?

2.3   设给定的数据集已经分组到区间。这些区间和对应频率如下所示:

age frequency
1~5 200
6~15 450
16~20 300
21~50 1500
51~80 700
81~110 44

计算该数据的近似中位数

N = 200 + 450 + 300 + 1500 + 700 + 44 = 3194  (∑frequence)l = 950    (frequence)median = 1500   

则median = 21 + (N/2 - (∑frequence)l))/(renquence) * 30 = 33.94    中位数33.94位于21~50区间

2.4假设医院对18个随机挑选的成年人检查年龄和身体肥胖,得到如下结果:

age 23 23 27 27 39 41 47 49 50
%fat 9.5 26.5 7.8 17.8 31.4 25.9 27.4 27.2 31.2

 

age 52 54 54 56 57 58 58 60 61
%fat 34.6 42.5 28.8 33.4 30.2 34.1 32.9 41.2 35.7

(a)计算age和%fat的均值中位数标准差

import numpy as np
age = [23,23,27,27,39,41,47,49,50,52,54,54,56,57,58,58,60,61]
fat = [9.5,26.5,7.8,17.8,31.4,25.9,27.4,27.2,31.2,34.6,42.5,28.8,33.4,30.2,34.1,32.9,41.2,35.7]
#均值
print('age的均值为:'np.agerage(age))
print('%fat的均值为:'average(fat))
#中位数
print('age的中位数为:'np.median(age))
print('%fat的中位数为:'np.median(fat))
#标准差
print('age的标准差为:'np.sqrt(sun(pow(age-np.average(age),2))))
print('%fat的标准差为:'np.sqrt(sum(pow(fat-np.average(fat),2))))

age的平均值为:46.44,中位数为:51,标准差为:13.22

fat的平均值为:28.78,中位数为:30.7,标准差为:9.25

(b)绘制age和%fat的盒图

import matplotlib.pyplot as plt
import statsmodels.api as sm
import matplotlib
age = [23,23,27,27,39,41,47,49,50,52,54,54,56,57,58,58,60,61]
fat = [9.5,26.5,7.8,17.8,31.4,25.9,27.4,27.2,31.2,34.6,42.5,28.8,33.4,30.2,34.1,32.9,41.2,35.7]
#age盒图
df = pd.DataFrame(age)
df.plot.box(title = 'boxplot of age')
plt.grid(linestyle='--',alpha=0.3)
plt.show()
#%fat盒图
df = pd.DataFrame(fat)
df.plot.box(title = 'boxplot of %fat')
plt.grid(linestyle='--',alpha=0.3)
plt.show()

(c)绘制基于这两个变量的散点图q-q图

from scipy import stats
import matplotlib.pyplot as plt
import statsmodels.api as sm
import matplotlib
#散点图
plt.title('age-%fat')
plt.scatter(age,fat,alpha=0.6)
plt.show()

2.6给定两个被元组(22,1,42,10)和(20,0,36,8)表示的对象。

(a)计算这两个对象之间的欧几里得距离

 

(b)计算这两个对象之间的曼哈顿距离

(c)使用q = 3,计算这两个对象之间的闵可夫斯基距离

(d)计算这两个对象之间的上确界距离


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM