久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

基于python 等頻分箱qcut問題的解決

瀏覽:143日期:2022-08-04 15:07:14

在python 較新的版本中,pandas.qcut()這個函數中是有duplicates這個參數的,它能解決在等頻分箱中遇到的重復值過多引起報錯的問題;

在比較舊版本的python中,提供一下解決辦法:

import pandas as pd def pct_rank_qcut(series, n): ’’’ series:要分箱的列 n:箱子數 ’’’ edages = pd.series([i/n for i in range(n)] # 轉換成百分比 func = lambda x: (edages >= x).argmax() #函數:(edages >= x)返回fasle/true列表中第一次出現true的索引值 return series.rank(pct=1).astype(float).apply(func) #series.rank(pct=1)每個值對應的百分位數,最終返回對應的組數;rank()函數傳入的數據類型若為object,結果會有問題,因此進行了astype

補充拓展:Python數據離散化:等寬及等頻

在處理數據時,我們往往需要將連續性變量進行離散化,最常用的方式便是等寬離散化,等頻離散化,在此處我們討論離散化的概念,只給出在python中的實現以供參考

1. 等寬離散化

使用pandas中的cut()函數進行劃分

import numpy as npimport pandas as pd # Discretization: Equal Width ## Datas: Sample * Featuredef Discretization_EqualWidth(K, Datas, FeatureNumber): DisDatas = np.zeros_like(Datas) for i in range(FeatureNumber): DisOneFeature = pd.cut(Datas[:, i], K, labels=range(1, K+1)) DisDatas[:, i] = DisOneFeature return DisDatas

2. 等頻離散化

pandas中有qcut()可以使用,但是邊界易出現重復值,如果為了刪除重復值設置 duplicates=‘drop’,則易出現于分片個數少于指定個數的問題,因此在此處不使用qcut()

import numpy as npimport pandas as pd # Discretization: Equal Frequency ## vector: single featuredef Rank_qcut(vector, K): quantile = np.array([float(i) / K for i in range(K + 1)]) # Quantile: K+1 values funBounder = lambda x: (quantile >= x).argmax() return vector.rank(pct=True).apply(funBounder) # Discretization: Equal Frequency ## Datas: Sample * Featuredef Discretization_EqualFrequency(K, Datas, FeatureNumber): DisDatas = np.zeros_like(Datas) w = [float(i) / K for i in range(K + 1)] for i in range(FeatureNumber): DisOneFeature = Rank_qcut(pd.Series(Datas[:, i]), K) #print(DisOneFeature) DisDatas[:, i] = DisOneFeature return DisDatas

以上這篇基于python 等頻分箱qcut問題的解決就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 福清市| 图片| 滨州市| 雷山县| 建德市| 原阳县| 黄大仙区| 克什克腾旗| 闽侯县| 呼伦贝尔市| 莫力| 恩平市| 萍乡市| 承德县| 遂宁市| 阳泉市| 呼图壁县| 贵定县| 六枝特区| 大宁县| 丹巴县| 阿拉善右旗| 开江县| 万山特区| 措勤县| 西藏| 镇安县| 泽普县| 定州市| 富裕县| 丹阳市| 呼玛县| 宜阳县| 湘潭市| 平湖市| 武宣县| 舞钢市| 拜城县| 玉林市| 宁安市| 石柱|