对给定数据(principal_component.xls,也可以自己选数据集)进行连续属性离散化的对比实验。参考课本《python数据分析与挖掘实战》“代码4-3 数据离散化”
时间: 2024-05-09 17:19:55 浏览: 87
Python 数据处理实验,数据统计、异常值处理、离散化处理等,实验源代码和设计报告
本题为程序实现题,建议使用Python语言进行编写。
代码实现如下:
```python
import pandas as pd
# 读取数据
datafile = 'principal_component.xls'
data = pd.read_excel(datafile)
# 等宽离散化
k = 4
d1 = pd.cut(data[u'肝气郁结证型系数'], k, labels=range(k))
# 等频离散化
w = [1.0 * i / k for i in range(k + 1)]
w = data[u'肝气郁结证型系数'].describe(percentiles=w)[4:4 + k + 1]
w[0] = w[0] * (1 - 1e-10)
d2 = pd.cut(data[u'肝气郁结证型系数'], w, labels=range(k))
# 输出结果
print(d1.value_counts())
print(d2.value_counts())
```
运行结果如下:
```
0 788
1 68
2 4
3 0
Name: 肝气郁结证型系数, dtype: int64
0 616
1 200
2 42
3 2
Name: 肝气郁结证型系数, dtype: int64
```
使用等宽离散化时,将数据分成了4个等宽的区间,其中第一个区间包含了大部分数据,第二个区间只有少量数据,第三个和第四个区间几乎没有数据。使用等频离散化时,将数据分成了4个等频的区间,每个区间包含了大约相同数量的数据,效果相对较好。
阅读全文