python按比例抽样质检,Python 对不均衡数据进行Over sample(重抽样)

需要重采样的数据文件(Libsvm format),如heart_scale

+1 1:0.708333 2:1 3:1 4:-0.320755 5:-0.105023 6:-1 7:1 8:-0.419847 9:-1 10:-0.225806 12:1 13:-1

-1 1:0.583333 2:-1 3:0.333333 4:-0.603774 5:1 6:-1 7:1 8:0.358779 9:-1 10:-0.483871 12:-1 13:1

....

重采样后的数据保存文件(Libsvm format),这里heart_scale_balance.txt

Python code:

from sklearn.datasets import load_svmlight_file

from sklearn.datasets import dump_svmlight_file

import numpy as np

from sklearn.utils import check_random_state

from scipy.sparse import hstack,vstack

def fit_sample(X, y):

"""Resample the dataset.

"""

label = np.unique(y)

stats_c_ = {}

maj_n = 0

for i in label:

nk = sum(y==i)

stats_c_[i] = nk

if nk > maj_n:

maj_n = nk

maj_c_ = i

# Keep the samples from the majority class

X_resampled = X[y == maj_c_]

y_resampled = y[y == maj_c_]

# Loop over the other classes over picking at random

for key in stats_c_.keys():

# If this is the majority class, skip it

if key == maj_c_:

continue

# Define the number of sample to create

num_samples = int(stats_c_[maj_c_] -stats_c_[key])

# Pick some elements at random

random_state = check_random_state(42)

indx = random_state.randint(low=0, high=stats_c_[key],size=num_samples)

# Concatenate to the majority class

X_resampled = vstack([X_resampled,X[y == key],X[y == key][indx]])

print np.shape(y_resampled),np.shape(y[y == key]),np.shape(y[y == key][indx])

y_resampled = list(y_resampled)+list(y[y == key])+list(y[y == key][indx])

return X_resampled, y_resampled

X_train, y_train = load_svmlight_file("heart_scale")

# Apply the random over-sampling

X_train, y_train = fit_sample(X_train,y_train)

dump_svmlight_file(X_train, y_train,'heart_scale_balance.txt',zero_based=False)

JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

Python下载Yahoo!Finance数据

Python下载Yahoo!Finance数据的三种工具: (1)yahoo-finance package. (2)ystockquote. (3)pandas.

Delphi中使用python脚本读取Excel数据

Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

python打印表格式数据,留出正确的空格和段落星号或注释

python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...

python查询数据库返回数据

python查询数据库返回数据主要运用到flask框架,pymysql 和 json‘插件’ #!/usr/bin/python # -*- coding: UTF-8 -*- import pymy ...

用python在后端将数据写入到数据库并读取

用python在后端将数据写入到数据库: # coding:utf- import pandas as pd from sqlalchemy import create_engine # 初始化数据库 ...

Python 进程之间共享数据

最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享  在mp库当中,跨进程对象共享有三种方式,第一种 ...

Python使用plotly绘制数据图表的方法

转载:http://www.jb51.net/article/118936.htm 本篇文章主要介绍了Python使用plotly绘制数据图表的方法,实例分析了plotly绘制的技巧. 导语:使用 p ...

python中json格式数据输出实现方式

python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info[&q ...

随机推荐

【转载】C++ function、bind和lambda表达式

本篇随笔为转载,原贴地址:C++ function.bind和lambda表达式. 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制 ...

如何使用同一个Action中的不同方法

如何使用同一个Action中的不同方法 1.使用Action的DMI(Dynamic Method Invocation--动态方法调用) (1)动态方法调用: 表单元素的action不是直接为某个A ...

R语言,NA,NAN

好莫名其妙的结果 is.na() #NA得不到的值is.nan() #NAN不可能的值is.infinite() #无穷的 x1

HDU 3466 Proud Merchants(01背包)

这道题目看出背包非常easy.主要是处理背包的时候须要依照q-p排序然后进行背包. 这样保证了尽量多的利用空间. Proud Merchants Time Limit: 2000/1000 MS (J ...

JVM--常见的虚拟机回收算法

Serial GC -XX:+UseSerialGC 这样就设置为了串行GC回收方式,这种方式在Client模式下是默认的. 一般是使用在单机程序,小内存,CPU个数少的机器上. 没有复杂的算法,只用 ...

Java架构工程师知识图,你都知道么?

1.工程化专题 (团队大于3个人之后,你需要去考虑团队合作,科学管理)  2.源码分析专题 (好的程序员,一行代码一个设计就能看出来,源码分析带你品味代码,感受架构)  大家可以点击加入群:69757 ...

Object类的equals()方法总结

1.equals()是Object中的方法,作用在于检测一个对象是否等于另一个对象. 2.在Object类中equals()方法是判断两个对象是否有相同的引用 ,即是否是相同的对象. 3.String ...

网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...

adb 常用命令-转载

转自:https://blog.csdn.net/suxing_ing/article/details/54907860 显示当前运行的全部模拟器:adb devices 获取序列号:adb get- ...

php中连接mysql数据库的第一步操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值