Python 비례 에 따라 샘플 데 이 터 를 가 져 오 거나 작업 을 수행 하 는 실현 코드

비례 에 따라 견본 데 이 터 를 가 져 오 거나 임 무 를 수행 합 니 다.
로:수객 QQ:1033553122
개발 환경
win 10
python 3.6.5
수요
각 분류의 견본 이 차지 하 는 비례 수 와 견본 의 총 수 를 이미 알 고 있 으 므 로 비례 에 따라 이런 분류의 견본 을 얻어 야 한다.예 를 들 어 저 는 4 가지 임 무 를 수행 해 야 합 니 다.각각 임무 A,임무 B,임무 C,임무 D 입 니 다.수행 을 요구 하 는 총 임무 횟수 는 100000 이 고 서로 다른 분류 임무 수행 횟수 의 비례 는 A:B:C:D=3:5:7:9 이 며 거시적인 측면 에서 이런 임 무 를 동시에 수행 합 니 다.
코드 구현

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
 
__author__ = 'shouke'
 
import time
from copy import deepcopy
 
 
def main():
 
  class_propotion_map = {'A':3, 'B':5, 'C':7, 'D':7} #           
  class_list = [] #   
  class_proption_list = [] #          
 
  for class_type, propotion in class_propotion_map.items(): #      ,                   
    class_list.append(class_type)
    class_proption_list.append(propotion)
 
  temp_class_propotion_list = deepcopy(class_proption_list)
  result = []
 
  t1 = time.time()
  total_sample_num = 100000 #      
  for i in range(1, total_sample_num+1):
    max_propotion = max(temp_class_propotion_list)
    if max_propotion > 0:
      index = temp_class_propotion_list.index(max_propotion)
      result.append(class_list[index])
      temp_class_propotion_list[index] -= 1
    elif max_propotion == 0 and min(temp_class_propotion_list) == 0:
      temp_class_propotion_list = deepcopy(class_proption_list)
      index = temp_class_propotion_list.index(max(temp_class_propotion_list))
      result.append(class_list[index])
      temp_class_propotion_list[index] -= 1

  t2 = time.time()
  from collections import Counter
  c = Counter(result)
  for item in c.items():
    print(item[0], item[1]/total_sample_num)
  print('  :%s'%(t2-t1))
 
main()
실행 결과

설명 하 다.
상기 방식 은 대체적으로 사고 방향 을 실현 하 는 것 은 각 분류 견본 수가 차지 하 는 비례 사본 데이터 목록 을 얻 은 다음 에 그 중에서 최대 비례 치 를 얻 고 이 비례 치 에 대응 하 는 분 류 를 찾 는 것 이다(분 류 를 얻 은 후에 수요 에 따라 분류 견본 데 이 터 를 얻 을 수 있다).목표 분 류 를 찾 은 후에 비례 데이터 사본 에서 이 비례 치 를 1 로 줄 이 는 것 이다.최대 비례 와 최소 비례 가 모두 0 이 될 때 까지 비례 사본 데 이 터 를 견본 수 비례 값 으로 리 셋 하고 앞의 과정 을 반복 한다.견본 수가 목표 견본 총수 에 이 를 때 까지 이런 방식 이 실현 되 는 전 제 는 견본 총수 와 서로 다른 분류 견본 수가 차지 하 는 비례 를 미리 알 고 비례 값 은 정수 이다.
파 이 썬 이 비례 에 따라 샘플 데 이 터 를 가 져 오 거나 임 무 를 수행 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 이 샘플 데 이 터 를 가 져 와 임 무 를 수행 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기