데이터 포괄 분석 튜토리얼 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

데이터 엔벨로프 분석 학습서

DEA라고도하는 데이터 엔벨로프 분석은 프론티어 분석을 수행하기위한 비모수 적 방법입니다. 선형 의사 결정을 사용하여 여러 의사 결정 단위의 효율성을 추정하며 생산, 관리 및 경제에서 일반적으로 사용됩니다. 이 기술은 1978 년 Charnes, Cooper 및 Rhodes 그 이후로 생산 프론티어를 추정하는 데 유용한 도구가되었습니다.

업데이트 : Datumbox Machine Learning Framework는 이제 오픈 소스이며 무료로 제공됩니다. 다운로드. com.datumbox.framework.algorithms.dea 패키지를 확인하여 Java에서 Data Envelopment Analysis의 구현을 확인하십시오.

5-6 년 전에이 방법을 처음 접했을 때 알고리즘의 독창성, 단순성 및 사용 된 아이디어의 영리함에 놀랐습니다. 온라인 마케팅, 검색 엔진 순위 및 복합 메트릭스 생성에 성공적으로 적용될 수 있기 때문에이 기술이 일반적인 응용 프로그램 (금융, 운영 연구 등) 외부에서 잘 작동한다는 사실에 더욱 놀랐습니다. 그럼에도 불구하고 오늘날 DEA는 거의 비즈니스 맥락에서 독점적으로 논의됩니다. 그렇기 때문에이 기사에서는 DEA의 기본 아이디어와 수학적 프레임 워크를 다루고 다음 포스트에서는 웹 애플리케이션에서 알고리즘의 새로운 애플리케이션을 보여 드리겠습니다.

데이터 엔벨로프 분석이 흥미로운 이유는 무엇입니까?

데이터 엔벨로프 분석 (Data Envelopment Analysis)은 사전에 가정하지 않고 기능 (무게, 크기, 비용, 수익 및 기타 메트릭스 또는 KPI)을 기준으로 레코드 (상점, 직원, 공장, 웹 페이지, 마케팅 캠페인 등)를 비교하고 순위를 매기는 방법입니다. 기능의 중요성 또는 가중치. 이 기술의 가장 흥미로운 부분은 측정 단위가 완전히 다른 여러 기능으로 구성된 레코드를 비교할 수 있다는 것입니다. 즉, 킬로미터, 킬로그램 또는 통화 단위로 측정 된 기능이있는 레코드를 보유 할 수 있으며 여전히 비교, 순위 지정 및 최고 / 최저 및 평균 성능 레코드를 찾을 수 있습니다. 흥미로운 것 같습니까? 계속 읽으세요.

데이터 엔벨로프 분석의 설명 및 가정

데이터 엔벨로프 분석 그래프
앞에서 논의했듯이 DEA는 비즈니스 생산성을 측정하기 위해 고안된 방법입니다. 따라서 몇 가지 아이디어는 이러한 맥락에서 생산성을 측정하는 방식에서 비롯됩니다. 이 방법의 핵심 특징 중 하나는 레코드 기능을 입력과 출력의 두 가지 범주로 분리하는 것입니다. 예를 들어 자동차의 효율을 측정하는 경우 입력은 휘발유 리터이고 출력은 주행 거리 (킬로미터)입니다.

DEA에서 모든 기능은 양수 여야하며 값이 클수록 입력 / 출력이 더 많은 것으로 가정합니다. 또한 Data Envelopment Analysis는 피처를 음이 아닌 가중치의 가중치 합계로 선형으로 결합 할 수 있고 각 레코드의 효율성을 측정하는 입력과 출력 간의 비율을 형성한다고 가정합니다. 레코드가 효율적이려면 제공된 입력과 관련하여 "좋은"출력을 제공해야합니다. 효율성은 출력과 입력의 비율로 측정 한 다음 다른 레코드의 비율과 비교됩니다.

DEA의 독창적 인 아이디어

지금까지 다루었던 것은 상식 / 연습입니다. 우리는 입력 및 출력, 가중치 합계 및 비율을 사용하여 레코드 순위를 매 깁니다. DEA의 영리한 아이디어는 피처의 가중치가 계산되는 방식입니다. 분석을 실행하기 전에 기능의 가중치를 설정하고 중요성을 결정하는 대신 데이터 엔벨로프 분석이 데이터에서 기능을 계산합니다. 또한 가중치는 모든 레코드에 대해 동일하지 않습니다!

DEA가 가중치를 선택하는 방법은 다음과 같습니다. 적절한 피쳐 가중치를 선택하여 모든 레코드의 비율을 최대화하려고합니다. 동시에 동일한 가중치를 사용하여 다른 모든 레코드의 비율을 계산하면 그 중 어느 것도 1보다 커지지 않아야합니다.

아이디어는 처음에 조금 이상하게 들립니다. 이것이 다른 가중치 비율의 계산으로 이어지지 않습니까? 대답은 '예'입니다. 이것이 실제로 모든 레코드의 비율을 다르게 계산한다는 의미는 아닙니까? 대답은 다시 그렇습니다. 어떻게 작동합니까? 답은 간단합니다. 모든 기록에 대해, 그 특성을 고려할 때, 우리는 그 비율이 가능한 높은 "이상적인 상황"(가중치)을 찾아서 가능한 한 효율적으로 만들려고합니다. 그러나 동시에 이러한 "이상적인 상황"을 고려할 때 다른 레코드의 출력 / 입력 비율이 1보다 크면 안됩니다. 즉, 100 %보다 효과적 일 수 없습니다! 각 "이상적인 상황"하에서 모든 기록의 비율을 계산 한 후에는 비율을 사용하여 순위를 매 깁니다.

따라서 DEA의 주요 아이디어는 다음과 같이 요약 할 수 있습니다.“각 레코드의 특성에 따라 최상의 비율 점수를 얻을 수있는 이상적인 상황을 찾으십시오. 그런 다음 각 레코드의 이상적인 비율을 계산하고이를 사용하여 효과를 비교하십시오.”

예를 보자

DEA를 사용할 수있는 예제를 보자.

총 직원 수, 평방 미터 단위의 매장 크기, 판매량 및 고객 수와 같은 여러 특성을 기반으로 특정 체인의 슈퍼마켓 매장의 효율성을 평가하는 데 관심이 있다고 가정하십시오. 그들은 평균적으로 매달 봉사합니다. 가장 효율적인 매장을 찾으려면 레코드를 여러 기능과 비교해야합니다.

DEA를 적용하려면 입력 및 출력을 정의해야합니다. 이 경우 결과는 분명히 판매량과 서비스를 제공하는 고객 수입니다. 입력은 직원 수와 상점 크기입니다. DEA를 실행하면 이상적인 가중치 아래에서 모든 매장의 출력 대 입력 비율을 추정합니다 (위에서 논의한 바와 같이). 일단 우리가 그들의 비율을 가지면 우리는 그들의 효율성에 따라 순위를 매길 것입니다.

수학 시간입니다!

이제 DEA의 작동 방식에 대한 이해를 얻었으므로 이제 수학을 파헤쳐 야합니다.

x 입력 및 y 출력을 가진 특정 레코드 i의 효율 비율 (양수 값을 가진 피처 벡터 모두)은 다음 공식을 사용하여 추정됩니다.

dea2

u와 v는 레코드의 각 출력과 입력의 가중치이며, s는 출력 기능의 수이고 m은 입력 기능의 수입니다.

특정 기록에 대한 최적 / 이상적 가중치를 찾는 문제는 다음과 같이 공식화 될 수 있습니다.

dea4
dea6
dea8

다시 말하지만, 위의 가중치가 다른 레코드를 100 %보다 효율적으로 만들지 않는다면 레코드 i의 효율성을 최대화하는 가중치 u 및 v를 찾는 수학적 방법입니다.

이 문제를 해결하려면 선형 프로그래밍을 사용해야합니다. 불행히도 선형 프로그래밍은 분수를 사용할 수 없으므로 다음과 같이 문제의 공식을 변환해야합니다.

dea10
dea12
dea14
dea8

위의 선형 프로그래밍 문제는 레코드 i에 가장 적합한 가중치를 제공하고 최적의 가중치에서 효율성을 계산할 것임을 강조해야합니다. 데이터 세트의 모든 레코드에 대해 동일한 과정을 반복해야합니다. 따라서 n 개의 레코드가 있으면 n 개의 선형 문제를 해결해야합니다. 다음은 DEA 작동 방식의 의사 코드입니다.

ratio_scores = [];
for every record i {
    i_ratio = get_maximum_effectiveness();
    ratio_scores[i] = i_ratio;
}

데이터 엔벨로프 분석의 한계

DEA는 훌륭한 기술이지만 한계가 있습니다. DEA는 블랙 박스와 같다는 것을 이해해야합니다. 각 기록의 효과 비율에 사용되는 가중치가 다르기 때문에 각 점수를 계산하는 방법과 이유를 설명하는 것은 의미가 없습니다. 보통 우리는 실효성 점수의 실제 가치보다는 기록의 순위에 중점을 둡니다. 또한 극단이 존재하면 점수가 매우 낮은 값을 가질 수 있습니다.

DEA는 기능의 선형 조합을 사용하여 비율을 추정합니다. 따라서 응용 프로그램에서 선형으로 결합하는 것이 적절하지 않은 경우 피쳐에 변환을 적용하고 선형으로 결합 할 수 있도록해야합니다. 이 기술의 또 다른 단점은 많은 계산 리소스가 필요한 레코드 수만큼 많은 선형 프로그래밍 문제를 해결해야한다는 것입니다.

DEA가 직면 한 또 다른 문제는 고차원 데이터에서 제대로 작동하지 않는다는 것입니다. DEA를 사용하려면 차원 수 d = m + s가 관측치 수보다 훨씬 적어야합니다. d가 매우 가깝거나 n보다 클 때 DEA를 실행하면 대부분의 레코드가 최적 인 것으로 확인되기 때문에 유용한 결과를 제공하지 않습니다. 새 출력 변수 (차원)를 추가하면이 차원에서 최대 값을 가진 모든 레코드가 최적으로 발견됩니다.

마지막으로 알고리즘의 일반적인 형식에서 DEA의 기능 가중치는 데이터에서 추정되므로 문제에서 발생할 수있는 기능의 중요성에 대한 사전 정보는 사용하지 않습니다. 이 정보를 선형 문제의 제약으로 통합하는 것이 가능합니다). 또한 계산 된 효율성 점수는 "이상적인 상황"에서 계산되므로 실제로 각 레코드의 상한 효율성 비율입니다. 이는 기능의 중요성에 대한 가정을 할 수없는 경우 DEA가 좋은 솔루션이 될 수 있지만 사전 정보가 있거나 중요도를 정량화 할 수있는 경우 대체 기술을 사용하는 것이 좋습니다.

다음 기사에서는 구현을 개발하는 방법을 보여 드리겠습니다. JAVA의 데이터 엔벨로프 분석 그리고이 방법을 사용하여 소셜 미디어 네트워크에서 웹 페이지 및 기사의 인기도를 추정합니다.

기사가 마음에 든다면 잠시 시간을내어 Twitter 나 Facebook에서 공유하십시오. 🙂

타임 스탬프 :

더보기 데이텀 박스