91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-07-29 09:01:55 來源:億速云 閱讀:149 作者:小新 欄目:開發技術

小編給大家分享一下如何解決基于python等頻分箱qcut的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

在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 np
import pandas as pd
 
# Discretization: Equal Width #
# Datas: Sample * Feature
def 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 np
import pandas as pd
 
# Discretization: Equal Frequency #
# vector: single feature
def 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 * Feature
def 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的問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威远县| 五家渠市| 东辽县| 轮台县| 望奎县| 龙游县| 扎赉特旗| 安溪县| 新竹县| 蕲春县| 岳阳市| 灌南县| 延川县| 浙江省| 宜阳县| 福贡县| 焉耆| 英德市| 宁武县| 贵溪市| 亚东县| 阳泉市| 阳城县| 通江县| 筠连县| 泾阳县| 子长县| 精河县| 信宜市| 黑山县| 通许县| 丹东市| 酉阳| 文化| 呼伦贝尔市| 富宁县| 洛阳市| 隆尧县| 司法| 新密市| 扶风县|