Python 비례 에 따라 샘플 데 이 터 를 가 져 오 거나 작업 을 수행 하 는 실현 코드
2684 단어 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 이 될 때 까지 비례 사본 데 이 터 를 견본 수 비례 값 으로 리 셋 하고 앞의 과정 을 반복 한다.견본 수가 목표 견본 총수 에 이 를 때 까지 이런 방식 이 실현 되 는 전 제 는 견본 총수 와 서로 다른 분류 견본 수가 차지 하 는 비례 를 미리 알 고 비례 값 은 정수 이다.
파 이 썬 이 비례 에 따라 샘플 데 이 터 를 가 져 오 거나 임 무 를 수행 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 이 샘플 데 이 터 를 가 져 와 임 무 를 수행 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.