代码来源:Python数据分析与挖掘实战

源代码有如下错误:

line22: 原: data.reshape      修改后:  data.values.reshape
line23: 原: sort(0)                  修改后: sort_values(0)
line24: 原: pd.rolling_mean(c, 2).iloc[1:]            修改后: pd.DataFrame.rolling(c, 2).mean().iloc[1:]
line31: 原: [j for i in d[d==j]]     修改后: [i for i in d[d==j]]

import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsedatafile = '../data/discretization_data.xls'
data = pd.read_excel(datafile)
data = data[u'肝气郁结证型系数'].copy()
k = 4d1 = pd.cut(data, k, labels=range(k))    #等宽离散化,各个类比依次命名为0,1,2,3#等频率离散化
w = [1.0*i/k for i in range(k+1)]
w = data.describe(percentiles=w)[4:4+k+1]    #使用describe函数自动计算分位数;w = [0.0, 0.25, 0.5, 0.75, 1.0]
w[0] = w[0]*(1-1e-10)    #1e-10表示1*10的-10次方
d2 = pd.cut(data, w, labels=range(k))    #w表示等频kmodel = KMeans(n_clusters=k, n_jobs=4)    #建立模型,n_jobs是并行数,一般等于cpu数较好
kmodel.fit(data.values.reshape((len(data), 1)))    #训练模型;data.values.reshape((len(data), 1))返回值是包含于一个大数组的n个小数组,类型为ndarray
c = pd.DataFrame(kmodel.cluster_centers_).sort_values(0)    #输出聚类中心,并且排序(默认是随机排序的);kmodel.cluster_centers_表示聚类中心坐标
w = pd.DataFrame.rolling(c, 2).mean().iloc[1:]    #相邻两项求中点,作为边界点
w = [0] + list(w[0]) + [data.max()]    #把首末边界点加上
d3 = pd.cut(data, w, labels=range(k))def cluster_plot(d, k):    #自定义做图函数来显示聚类结果plt.figure(figsize=(8, 3))    #由于这部分代码比较难理解,所以以d=d1与j=0为例说明for j in range(0, k):plt.plot(data[d==j], [i for i in d[d==j]], 'o')    #data[d1==0]表示的是data中被类比为0的数据,是x轴的数据;d1[d1==0]的取值均为0,表示y轴的值,与data[d1==0]中的值对应,一起组成下图中的线段plt.ylim(-0.5, k-0.5)    #设置当前y轴区间return pltcluster_plot(d1,k).show()
cluster_plot(d2,k).show()
cluster_plot(d3,k).show()

数据预处理-数据变换-连续属性离散化实现:pandas(0.23)+sklearn(0.19.1)+matplotlib(2.2.2)相关推荐

  1. Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

    Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...

  2. 一、数据预处理——数据归一化 数据标准化

    一.数据预处理--数据归一化 & 数据标准化 点击标题即可获取文章相关的源代码文件哟! 1.1 数据无量纲化 在机器学习算法实践中,我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据 ...

  3. python抽样_python数据预处理 :数据抽样解析

    何为数据抽样: 抽样是数据处理的一种基本方法,常常伴随着计算资源不足.获取全部数据困难.时效性要求等情况使用. 抽样方法: 一般有四种方法: 随机抽样 直接从整体数据中等概率抽取n个样本.这种方法优势 ...

  4. 数据预处理-数据变换-属性构造

    代码来源: Python数据分析与挖掘实战 #-*- coding: utf-8 -*- #线损率属性构造import pandas as pdinputfile = '../data/electri ...

  5. 数据预处理-数据变换-规范化

    为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析. 主要有:最小-最大规范化:零-均值规范化:小数定标规范化 数据如下图 ...

  6. 数据预处理+数据清理

    1.概述 实际的数据库极易受噪声.缺失值和不一致数据的侵扰,因为数据库太大,并且多半来自多个异种数据源.低质量的数据将会导致低质量的挖掘结果.有大量的数据预处理技术: - - 数据清理:可以用来清楚数 ...

  7. Pandas数据预处理|数据清理

    Pandas数据预处理(Data Preprocess)-数据清理 日期:2021/4/27 作者:就叫易易好了 注:本篇文章采用的数据集为"vgsales.csv",下载链接:h ...

  8. 数据预处理 -----数据分箱

    一.定义 数据分箱(Binning)作为数据预处理的一部分,也被称为离散分箱或数据分段.其实分箱的概念其实很好理解,它的本质上就是把数据进行分组. 分箱就是把数据按特定的规则进行分组,实现数据的离散化 ...

  9. 超全面 pandas 数据预处理+数据概览 处理技巧整理(持续更新版)

    这篇文章主要是整理下使用pandas的一些技巧,因为经常不用它,这些指令忘得真的很快.前段时间在数模美赛中已经栽过跟头了,不希望以后遇到相关问题的时候还去网上查(主要是太杂了).可能读者跟我有一样的问 ...

最新文章

  1. 培养未来工程人才的南科大实践 - 记录
  2. 穿越时空,跟我一起探索云栖数字谷(2021云栖大会免费送票)
  3. NET问答: 如何让 HttpClient 支持 Http 2.0 协议?
  4. docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像
  5. Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)上
  6. saas 困难_将不可信的Javascript作为SaaS运行非常困难。 这就是我驯服恶魔的方式。...
  7. 2021年五月下旬推荐文章
  8. matlab数字图像处理大作业_线上教学优秀案例(16) | 数字图像处理基于蓝墨云+企业微信的线上教学经验分享...
  9. JavaScript MVC 框架比较
  10. OEM 10g R5 online documentation
  11. 记录mikrotik路由器的折腾过程
  12. Android 下拉菜单列表客制化处理
  13. 【论文翻译】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  14. 人类基因编辑技术及背后的伦理问题 【个人观点,仅供参考】
  15. 【Python黑科技】几行代码绘制gif动图(保姆级图文+实现代码)
  16. mysql odbc怎么卸载_如何完全卸载数据库
  17. Mybatis03-封装MybatisUtil实体类
  18. Oracle数据库的基础
  19. 解决win10开机出现C:\WIndows\system32\config\systemprofile\Desktop不可用 问题
  20. 解决maven下载jar包速度慢的问题,将maven的下载源修改为阿里云源

热门文章

  1. linux suse 安装redis,suse 安装redis(示例代码)
  2. 如何linux保留内存,Linux内核中实现保留内存的方法
  3. python 数据结构包_python 中numpy科学计算工具包——基础数据结构
  4. Vision Transformer中的自监督学习
  5. pix2pix损失函数理解(精)
  6. [Unity] 战斗系统学习 6:构建 TPS 框架 2
  7. python海龟绘图画树_Python:海龟绘图(二)
  8. layui弹出层:使用icon图标小结
  9. PS如何生成svg代码格式的path路径 - PS技巧篇
  10. phpcms如何修改数据库图片地址?域名变更后图片附件路径只能手动修改数据库更新?