文档章节

数据离散化

marjey
 marjey
发布于 2017/08/19 15:13
字数 309
阅读 245
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

主要使用kmean

# -*- coding: utf-8 -*-
# 数据规范化
import pandas as pd

datafile = '../data/discretization_data.xls'  # 参数初始化
data = pd.read_excel(datafile)  # 读取数据
data = data[u'肝气郁结证型系数'].copy()
k = 4

d1 = 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] = w[0] * (1 - 1e-10)
d2 = pd.cut(data, w, labels=range(k))

from sklearn.cluster import KMeans  # 引入KMeans

kmodel = KMeans(n_clusters=k, n_jobs=4)  # 建立模型,n_jobs是并行数,一般等于CPU数较好
kmodel.fit(data.reshape((len(data), 1)))  # 训练模型
c = pd.DataFrame(kmodel.cluster_centers_).sort(0)  # 输出聚类中心,并且排序(默认是随机序的)
w = pd.rolling_mean(c, 2).iloc[1:]  # 相邻两项求中点,作为边界点
w = [0] + list(w[0]) + [data.max()]  # 把首末边界点加上
d3 = pd.cut(data, w, labels=range(k))


def cluster_plot(d, k):  # 自定义作图函数来显示聚类结果
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

    plt.figure(figsize=(8, 3))
    for j in range(0, k):
        plt.plot(data[d == j], [j for i in d[d == j]], 'o')

    plt.ylim(-0.5, k - 0.5)
    return plt


cluster_plot(d1, k).show()

cluster_plot(d2, k).show()
cluster_plot(d3, k).show()

© 著作权归作者所有

marjey
粉丝 3
博文 173
码字总数 139219
作品 0
昆明
私信 提问
加载中

评论(0)

机器学习模型为什么要将特征离散化

  在学习机器学习中,看过挺多案例,看到很多人在处理数据的时候,经常把连续性特征离散化。为此挺好奇,为什么要这么做,什么情况下才要做呢。 一、离散化原因   数据离散化是指将连续的...

osc_t0zmqrod
2018/08/07
1
0
系统学习机器学习之特征工程(四)--分箱总结

首先from wiki给出一个标准的连续特征离散化的定义: 在统计和机器学习中,离散化是指将连续属性,特征或变量转换或划分为离散或标称属性/特征/变量/间隔的过程。这在创建概率质量函数时非常...

Eason.wxd
03/31
0
0
粒子群优化算法(PSO)之基于离散化的特征选择(FS)(一)

欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 作者:Geppetto 在机器学习中,离散化(Discretization)和特征选择(Feature Sele...

磐石001
2018/04/05
0
0
c++离散化处理大范围和重复数据

c++离散化处理大范围和重复数据 关于离散化 有些新手可能会问:离散化是什么?离散化就是将无限空间中有限的个体映射到有限的空间里去。 上面的定义肯定会有人看不懂(其实我刚开始学的时候也...

优惠券发放
05/17
0
0
python数据分析数据标准化及离散化详解

python数据分析数据标准化及离散化详解 本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下 标准化 1、离差标准化 是对原始数据的线性变换,使结果映射...

osc_wk8cl8xe
2018/07/23
4
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务项目搭建,到底要不要聚合工程?

这是一个入门问题,做微服务项目,首先就是要搭建 Project,代码采用什么样的形式来组织,这是我们面临的第一个问题。 要扯清楚这个问题,首先对 Maven 的使用不能含糊,小伙伴们可以在公众号...

osc_y12wmf09
19分钟前
15
0
C语言探索之旅 | 第一部分第六课:变量的世界(三),显示变量内容

作者 谢恩铭,慕课网精英讲师 Oscar老师。 转载请注明出处。 内容简介 用 printf 显示变量内容 用 scanf 提取程序中的输入 总结 第一部分第七课预告 1. 用 printf 显示变量内容 变量相关的内...

osc_zjs1puzi
20分钟前
16
0
php 操作RabbitMQ

基本流程图 如果exchange 没有绑定queue,则消息将会被丢弃 如果创建exchange,queue,并且已经绑定了,则可以直接使用 为了防止脚本出问题 可以配合supervisor 安装 从网站 https://packag...

php开源社区
22分钟前
18
0
Kotlin Coroutines Flow 系列(五) 其他的操作符

八. Flow 其他的操作符 8.1 Transform operators transform 在使用 transform 操作符时,可以任意多次调用 emit ,这是 transform 跟 map 最大的区别: fun main() = runBlocking { (1...

osc_0l1onu3j
22分钟前
13
0
挽救数据库性能的30条黄金法则

原文: 挽救数据库性能的30条黄金法则 1. 优化查询,应尽量避免全表扫描,应该在用于检索数据和排序数据的字段上建立索引,如where子句用于搜索,order by子句用于排序,所以在这两个子句涉及...

osc_gxvh47u5
23分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部