Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 데이터 평활화를 위한 비닝 방법

<시간/>

여러 번 우리는 데이터를 통계 분석에 적합하고 정성적으로 만들기 위해 데이터 평활화라는 방법을 사용합니다. 훈제 과정에서 우리는 bin이라고도 하는 범위를 정의하고 범위 내의 모든 데이터 값은 bin에 맞도록 만들어집니다. 이를 비닝 방식이라고 합니다. 다음은 비닝의 예입니다. 그런 다음 Python 프로그램을 사용하여 비닝 방법을 달성하는 방법을 살펴보겠습니다.

비닝 예

일련의 숫자를 살펴보겠습니다. 최대값과 최소값을 찾으십시오. 분석에 필요한 데이터 포인트 수에 따라 필요한 빈 수를 결정합니다. 이 그룹을 만들고 이 번호 각각을 이 그룹에 할당합니다. 상위 값은 제외되고 다음 그룹에 속합니다.

예시

주어진 숫자:12, 32, 10, 17, 19, 28, 22, 26, 29,16그룹 수:4HereMax 값:32Min 값:10그래서 그룹은 –(10-15), (15-21) , (21-27), (27-32)

출력

숫자를 빈에 넣으면 다음과 같은 결과를 얻습니다. -

<전>12 -> (10-15)32 -> (27-32)10 -> (10-15)17 -> (15-21)19 -> (15-21)28 -> (27-32) )22 -> (21-27)26 -> (21-27)29 -> (27-32)16 -> (15-21)

비닝 프로그램

이 프로그램의 경우 두 가지 기능을 정의합니다. 상한과 하한을 정의하여 빈을 생성하기 위한 것입니다. 다른 기능은 입력 값을 각 빈에 할당하는 것입니다. 각 빈은 인덱스도 가져옵니다. 각 입력 값이 빈에 할당되는 방식을 확인하고 특정 빈으로 이동하는 값의 수를 추적합니다.

예시

컬렉션에서 가져오기 Counterdef Binning_method(lower_bound, 너비, 수량):범위 내 낮은 값에 대한 binning =[](lower_bound, lower_bound + 수량 * 너비 + 1, 너비):binning.append((낮은, 낮은 + 너비)) return binningdef bin_assign(v, b):for i in range(0, len(b)):if b[i][0] <=v  

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

빈:[(50, 54), (54, 58), (58, 62), (62, 66), (66, 70), (70, 74), (74, 78), ( 78, 82), (82, 86), (86, 90), (90, 94)]비닝된 값:89.2 -인덱스 포함- 9:(86, 90)57.2 -인덱스 포함- 1:(54, 58) 63.4 -인덱스 포함- 3:(62, 66)84.6 -인덱스 포함- 8:(82, 86)90.2 -인덱스 포함- 10:(90, 94)60.3 -인덱스 포함- 2:(58, 62)88.7 - 인덱스 포함- 9 :(86, 90)65.2 - 인덱스 포함- 3 :(62, 66)79.8 - 인덱스 포함- 7 :(78, 82)80.2 - 인덱스 포함- 7 :(78, 82)93.5 - 인덱스 포함 - 10 :(90, 94)79.3 -인덱스 포함- 7 :(78, 82)72.5 -인덱스 포함- 5 :(70, 74)59.2 -인덱스 포함- 2 :(58, 62)77.2 -인덱스 포함- 6 :(74, 78)67.0 - 인덱스 포함 - 4 :(66, 70)88.2 - 인덱스 포함 - 9 :(86, 90)73.5 - 인덱스 포함 - 5 :(70, 74) 각 인덱스의 값 개수:카운터 ({9:3, 7:3, 3:2, 10:2, 2:2, 5:2, 1:1, 8:1, 6:1, 4:1})