연관규칙 분석 기법 설명한 동영상 자료입니다.

본 자료는 <즐거움을 가져다 주는 자유인> 다음 카페에서 제공하고 있습니다.

   동영상1 (11강_5장 연관규칙의 발굴1)

사용자 삽입 이미지
 

http://cafe.daum.net/ppa2005/Q8bc/97?docid=1F1hZ|Q8bc|97|20090206230817&q=%BF%AC%B0%FC%B1%D4%C4%A2&srchid=CCB1F1hZ|Q8bc|97|20090206230817 

   동영상2 (12강_5장 연관규칙의 발굴2)

사용자 삽입 이미지
 

http://cafe.daum.net/ppa2005/Q8bc/97?docid=1F1hZ|Q8bc|97|20090206230817&q=%BF%AC%B0%FC%B1%D4%C4%A2&srchid=CCB1F1hZ|Q8bc|97|20090206230817


by 에이아이 2009. 8. 4. 19:48

<이등병>

부모님전상서

북풍한설 몰아치는 겨울날 불초소생 문안 여쭙니다.

저는 항상 배불리 먹고 잘 보살펴 주시는
고참님들 덕분에 잘 지내고 있습니다.

너무 걱정하지 마시고 대한의 씩씩한 남아가 되어
돌아갈 그날까지 건강히 지내십시오.

 


<이등병 어머니>
사랑하는 아들에게!!
군대에서 소포로 온 네 사복을 보고 밤새 울었단다.
추운 날씨에 우리 막둥이 감기나 안걸리고 생활하는지
이 엄마는 항상 걱정이다.
집안은 모두 편안하니 아무걱정 말고
씩씩하게 군생활 잘하길 빌겠다.


<일병 >
어머니께...
열나게 빡센 훈련이 얼마 안남았은데
어제 무좀걸린 발이 도져서 걱정입니다.
군의관에게 진료를 받았더니 배탈약을 줍디다.
용돈이 다 떨어졌는데 빨리 부쳐주지 않으면
옆 관물대를 뒤질지도 모르겠습니다.....

<일병 어머니>
아들 보아라!!
휴가나와서 네가 타간 용돈 때문에
한달 가계부가 정리가 안된다.
그래도 네가 잘 먹고 푹 쉬고 돌아가는 모습을 보니
다음 휴가 나올때는 미리 연락주기 바란다.
돈을 모아놔야 하거든...(??)
그리고 군복 맞추는 값은 입금시켰으니
좋고 따뜻한 걸로 장만하길 바라마.
(p.s 니네 아빠 군대 때는 그냥 줬다던데....)


<상병 >
엄마에게!!
엄마 왜 면회 안 와??
아들이 이 촌구석에서 이렇게 고생하면서 있는데....
어제 김일병네 엄마는 먹을꺼 잔뜩 사들고 와서
내무반에 풀어놓고 외박 나가서
앵미리 실컷 먹었다더라~~~~엄마는 가끔
내 친엄마가 아닌 것 같다는 생각이 들어.
투덜 ~~~투덜~~~~

<상병 어머니 >
아들아~~~
수신자 부담 전화는 이제 그만하기 바란다.
어째서 너는 군생활을 하면서
전화를 그렇게 자주할 수 있는지 모르겠다.
그리고 무슨 놈의 휴가는 그렇게 자주 나오냐?
누굴닮아 저 모냥이냐고
어제는 아빠와 둘이 대판 싸웠다.
내가 이겨서 너는 아빠를 닮은 것으로
결정났으니 그리 알거라 ^^


<병장 >
어떻게 군생활을 했는지 내가 생각해도 용해~~
글구 보내준 무스가 다 떨어졌어!!! 하나 더 보내줘
헤어스타일이 영 자세가 안잡혀~~
그리고 놀라지 마.
어제는 내가 몰던 탱크가 뒤집혀서 고장났는데,
사비로 고쳐야 된데~~
엄마.... 100만원이면 어떻게 막아 볼 수 있을 거 같은데....
다음주까지 어떻게 안될까??

<병장 어머니 >
니 보직이 PX 병이 란 사실을 이제야 알아냈다.
탱크 고치는데 가져간 돈
좋은말로 할때 반납하기 바란다.
요즘 가정형편이 어려우니
차라리 거기서 말뚝이나 박았으면 좋으련만 ..
니가 쓰던 방은 어제부터 창고로 쓰고 있다.
벌써 24개월이 다 지나간걸 보니 착잡하기 그지 없구나

'Hobby : 유머' 카테고리의 다른 글

아주 심심한 유머 10  (0) 2009.08.15
나이별 선생님의 강의스타일  (0) 2009.08.15
공부에 동기를 주는 명언들  (0) 2009.08.04
무서운 할머니 .. 납량특집  (0) 2009.08.04
콩글리쉬 시리즈  (0) 2009.08.04
by 에이아이 2009. 8. 4. 19:43

회귀분석이란?


회귀분석 관련 자료 

[1] 회귀분석에 대한 자세한 소개자료
      http://cafe.daum.net/statstory 카페로 부터 얻음.
    


    
[2] 회귀분석에서 문제가 되는 <다중공선성> 설명
      http://cafe.daum.net/statstory 카페로 부터 얻음.

 

by 에이아이 2009. 8. 4. 19:34

참고주소 : http://www.rulequest.com/see5-comparison.html

0. C4.5와 C5.0은 어떻게 다른가?

C4.5 is a widely-used free data mining tool that is descended from an earlier system called ID3 and is followed in turn by See5/C5.0. To demonstrate the advances in this new generation, we will compare See5/C5.0 Release 2.06 with C4.5 Release 8 using three sizable datasets:


Sleep stage scoring data (sleep, 105,908 cases). Every case in this monitoring application is described by six numeric-valued attributes and belongs to one of six classes. C5.0 and C4.5 use 52,954 cases to construct classifiers that are tested on the remaining 52,954 cases. The data are available from here.
Census income data (income, 199,523 cases). The goal of this application is to predict whether a person's income is above or below $50,000 using seven numeric and 33 discrete (nominal) attributes. The data are divided into a training set of 99,762 cases and a test set of 99,761. They can be obtained from the UCI KDD Archive.
Forest cover type data (forest, 581,012 cases); also from UCI. This application has seven classes (possible types of forest cover), and the cases are described in terms of 12 numeric and two multi-valued discrete attributes. As before, half of the data -- 290,506 cases -- are used for training and the remainder for testing the learned classifiers.
Since C4.5 is a Unix-based system, results for the Unix version C5.0 are presented to facilitate comparison. Both were compiled using the Intel C compiler 10.1 with the same optimization settings. Times are elapsed seconds for an unloaded Intel Q9550 (2.8GHz) with 2GB of RAM running 64-bit Fedora Core.
So, let's see how C5.0 stacks up against C4.5.

1. Rulesets: often more accurate, much faster, and much less memory

 These graphs show the accuracy on unseen test cases, number of rules produced, and construction time for the three datasets. Results for C5.0 are shown in blue.

Both C4.5 and C5.0 can produce classifiers expressed either as decision trees or rulesets. In many applications, rulesets are preferred because they are simpler and easier to understand than decision trees, but C4.5's ruleset methods are slow and memory-hungry. C5.0 embodies new algorithms for generating rulesets, and the improvement is dramatic.

Accuracy: The C5.0 rulesets have noticeably lower error rates on unseen cases for the sleep and forest datasets. The C4.5 and C5.0 rulesets have the same predictive accuracy for the income dataset, but the C5.0 ruleset is much smaller.
Speed: The times are almost not comparable. For instance, C4.5 required more than 84 minutes to find the ruleset for income, but C5.0 completed the task in just over 4 seconds.
Memory: C5.0 commonly uses an order of magnitude less memory than C4.5 during ruleset construction. For the forest dataset, C4.5 needs more than 3GB (the job would not complete on earlier 32-bit systems), but C5.0 requires less than 200MB.

2. 기능적인 차이 (C5.0 에서 추가된 기능)

New functionality
C5.0 incorporates several new facilities such as variable misclassification costs. In C4.5, all errors are treated as equal, but in practical applications some classification errors are more serious than others. C5.0 allows a separate cost to be defined for each predicted/actual class pair; if this option is used, C5.0 then constructs classifiers to minimize expected misclassification costs rather than error rates.

The cases themselves may also be of unequal importance. In an application that classifies individuals as likely or not likely to "churn," for example, the importance of each case may vary with the size of the account. C5.0 has provision for a case weight attribute that quantifies the importance of each case; if this appears, C5.0 attempts to minimize the weighted predictive error rate.

C5.0 has several new data types in addition to those available in C4.5, including dates, times, timestamps, ordered discrete attributes, and case labels. In addition to missing values, C5.0 allows values to be noted as not applicable. Further, C5.0 provides facilities for defining new attributes as functions of other attributes.

Some recent data mining applications are characterized by very high dimensionality, with hundreds or even thousands of attributes. C5.0 can automatically winnow the attributes before a classifier is constructed, discarding those that appear to be only marginally relevant. For high-dimensional applications, winnowing can lead to smaller classifiers and higher predictive accuracy, and can even reduce the time required to generate rulesets.

C5.0 is also easier to use. Options have been simplified and extended -- to support sampling and cross-validation, for instance -- and C4.5's programs for generating decision trees and rulesets have been merged into a single program.

The Windows version, See5, has a user-friendly graphic interface and adds a couple of interesting facilities. For example, the cross-reference window makes classifiers more understandable by linking cases to relevant parts of the classifier.

RuleQuest provides free source code for reading and interpreting See5/C5.0 classifiers. After the classifiers have been generated by See5/C5.0, this code allows you to access them from other programs and to deploy them in your own applications.

For more information on See5/C5.0, please see the tutorial.


3. Decision trees: faster, smaller

 For all three datasets, C4.5 and C5.0 produce trees with similar predictive accuracies (although C5.0's are marginally better for the sleep and income applications). The major differences are the tree sizes and computation times; C5.0's trees are noticeably smaller and C5.0 is faster by factors of 6.5, 4.6, and 21 respectively.

4. Boosting

 Based on the research of Freund and Schapire, this is an exciting new development that has no counterpart in C4.5. Boosting is a technique for generating and combining multiple classifiers to improve predictive accuracy.

The graphs above show what happens in 10-trial boosting where ten separate decision trees or rulesets are combined to make predictions. The error rate on unseen cases is reduced for all three datasets, substantially so in the case of forest for which the error rate of boosted classifiers is more than 40% below that of the corresponding C4.5 classifier. Unfortunately, boosting doesn't always help -- when the training cases are noisy, boosting can actually reduce classification accuracy. C5.0 uses a proprietary variant of boosting that is less affected by noise, thereby partly overcoming this limitation.

C5.0 supports boosting with any number of trials. Naturally, it takes longer to produce boosted classifiers, but the results can justify the additional computation! Boosting should always be tried when peak predictive accuracy is required, especially when unboosted classifiers are already quite accurate.


by 에이아이 2009. 8. 4. 19:19

출처: http://cafe.daum.net/statsas/B3o/447?docid=5G5|B3o|447|20070714124050&q=%BF%AC%B0%FC%B1%D4%C4%A2&srchid=CCB5G5|B3o|447|20070714124050

Inside I.E.에서는 산업공학 및 경영과학 분야의 최근 연구동향에 대해 안내합니다.
비즈니스 의사결정 프로세스의 핵심요소로 자리잡고 있는 데이터마이닝을 연속해서 다루고 있습니다.
이번 호에서는 그 마지막 내용으로 데이터마이닝 기법 중 연관규칙의 탐사에 대해 알아보도록 하겠습니다.

데이터마이닝 기법 : 연관규칙의 탐사

(포항공대 전 치 혁 교수)
 

1. 서언

연관규칙(association rule)이란 간단히 말하면 데이터의 항목들 간의 조건-결과 식으로 표현되는 유용한 패턴을 말한다. 연관규칙의 탐사는 기업의 활동, 특히 마케팅에서 가장 널리 사용되고 있다. 예를 들면, 미국의 슈퍼마켓에서 목요일 기저귀를 사는 고객은 맥주도 동시에 구매한다는 연관성을 알아냈다고 한다. 이때, 조건은 ‘목요일, 기저귀’이며 결과는 ‘맥주’라 할 수 있다. 이와 같은 연관규칙의 탐사가 가능하게 된 것은 컴퓨터기술의 발전을 들 수 있겠다. 한 고객이 슈퍼마켓의 계산대에서 계산할 때 쇼핑카트에 담긴 물품들이 바코드를 통하여 컴퓨터에 데이터베이스 형태로 입력되고 이로부터 고객들의 구매행태를 분석할 수 있게 되었다.

위에서 언급한 데이터의 형태는 소위 바스켓(basket) 데이터라 한다. 이 때 한 고객, 즉 한 바스켓의 정보를 하나의 트랜잭션(transaction)이라 한다. 바스켓 형태의 데이터에서는 주로 트랜잭션 내의 연관성을 살펴보고자 하는 것으로, 수많은 트랜잭션을 분석하여 빈번히 나타나는 규칙을 찾아내는 것이다. 이렇게 찾아낸 규칙은 마케팅에 활용된다. 예를 들어, 위의 기저귀-맥주의 규칙을 활용하여 기저귀와 맥주를 가까운 곳에 진열함으로써 매출 신장을 기할 수 있다. 이와 같이 바스켓 데이터로부터 연관규칙을 탐사하는 것을 시장바구니분석(market basket analysis)이라 한다.

연관규칙의 탐사는 한 고객의 시간에 따른 구매정보를 활용하여 이루어지기도 한다. 예를 들면, 가전제품 대리점에서 고객별 시간별 구매제품의 데이터를 활용하여 ‘제품 A를 사는 고객은 추후에 제품 B도 구매한다’는 연관규칙을 이끌어낼 수 있을 것이다. 이와 같은 패턴을 얻어 제품 A를 구매하였으나 제품 B를 구매하지 않은 고객에게 판매활동을 할 수 있다. 이런 시간에 따른 고객데이터를 시퀀스(sequence) 데이터라 한다.

당연한 사실이지만 탐사에서 도출된 연관규칙은 분명하고 유용한 것이어야 한다. 유용하다(useful)는 것은 새롭고도 실행가능하며 설명할 수 있는 것을 말한다고 하겠다. 이에 비해 사소한(trivial) 규칙이란 이미 잘 알려진 사실을 말한다. 예를 들면, ‘페인트를 사면 페인트 붓을 산다’ 는 규칙 같은 것이다. 또한, 설명할 수 없는 규칙은 데이터의 오류일 가능성도 있으며 마케팅에 활용할 수 없기 때문에 역시 유용하다고 볼 수 없다.


2. 연관규칙의 정의 및 성능척도

데이터베이스가 총 n개의 트랜잭션 데이터로 구성되며 전체 m개의 항목으로 구성된다고 하고 이를 I 라 하자. 연관규칙 R은 조건부와 결과부로 구성되며 항목집합인 X와 Y에 대하여 ‘X가 일어나면 Y 도 일어난다’는 의미로 다음과 같이 표현할 수 있다.

R : X ⇒ Y

여기서 X,Y⊆I 이고, X∩Y=Φ이어야 한다. 따라서 연관규칙을 탐사함은 적절한 항목집합 X와 Y를 선택하는 문제로 볼 수 있으며 이를 위해 몇 가지 척도를 고려하고 있다. 우선, 항목집합 X 및 규칙 R에 대한 지지도(support)는 각각 다음과 같이 정의된다.

supp(X) = 집합 X의 항목을 동시에 포함하는 트랜잭션 수의 전체 수(n)에 대한 비율
supp(R) = supp(X∪Y)

즉, 규칙 R에 대한 지지도는 집합 X 또는 집합 Y에 있는 항목을 동시에 포함하는 트랜잭션수의 비율을 나타낸다.

예 1. 다음과 같은 5개의 트랜잭션을 고려해 보자.

트랜잭션
항목
1 b, c, g
2 a, b, d, e, f
3 a, b, c, g
4 b, c, e, f
5 b, c, e, f, g

이때 전체 항목집합 I는 I = {a, b, c, d, e, f, g} 이다. 몇 가지 항목집합에 대한 지지도를 구하면 다음과 같다.

supp({a}) = 2/5 = 0.4, supp({b, c}) = 4/5 = 0.8

다음과 같은 규칙을 고려해 보자.

R: “항목 b와 항목 c가 일어나면, 항목 g도 일어난다”

이 때 규칙 R에 해당하는 항목집합 X와 Y는 다음과 같다.

X={b, c}, Y={g}.

이 경우 X 및 규칙 R에 대한 지지도는 각각 아래와 같이 산출된다.

supp(X) = supp({b, c}) = 0.8
supp(R) = supp({b, c, g}) = 3/5 = 0.6

연관규칙 R의 가치를 평가할 때 통상 다음과 같이 정의되는 신뢰도(confidence)를 사용한다.

conf(R)= supp(X∪Y)/supp(X)

이 신뢰도는 조건부 확률의 개념으로 집합 X(조건)가 발생한다고 할 때 집합 Y(결과)도 동시에 발생할 확률을 의미한다. 즉, 트랜잭션에 X의 항목들을 포함하는 경우 Y의 항목들도 동시에 포함할 확률을 나타내며, 신뢰도가 큰 규칙일수록 의미가 크다고 하겠다.
또한, 신뢰도 이외에 연관규칙의 개선도(lift or improvement)를 함께 사용하는데, 이는 결과가 단독으로 발생할 빈도에 대한 조건과 연계하여 결과가 발생할 가능성의 빈도의 비로 정의된다.

개선도가 1이 됨은 가 성립하므로 항목 집합 X와 Y의 발생이 독립임을 의미한다고 하겠다. 그리고 개선도가 1 전후의 값에 따라 다음과 같은 해석을 할 수 있다.

- lift(R) > 1인 경우, X와 Y의 발생이 양의 상관관계
- lift(R) < 1인 경우, X와 Y의 발생이 음의 상관관계

따라서 개선도가 1보다 큰 규칙이야말로 우연한(랜덤한) 관계가 아닌 필연적 관계를 나타낸다고 하겠다.


3. 연관규칙의 탐사

연관규칙의 탐사는 결국 신뢰도 또는 개선도가 높은 규칙 R을 트랜잭션 데이터로부터 도출하는 과정이다. 따라서 규칙이 R : X ⇒ Y의 형태일 때 적절한 항목집합 X와 Y를 찾는 것이라 할 수 있겠다. 그러나 모든 항목의 조합을 고려하여 성능이 좋은 규칙을 찾는 일은 쉬운 것이 아니므로 이를 위한 효율적인 알고리즘이 요구된다. 예로써 예 1.의 7개 항목으로 구성된 5건의 트랜잭션 데이터에 대하여 집합 X의 후보가 되는 경우수를 볼 때, 1개 항목으로 구성되는 경우가 7가지, 2개의 항목으로 구성되는 경우가 21가지, 3개의 항목으로 구성되는 경우가 35가지 등이 될 것이다.
연관규칙의 탐사를 위한 알고리즘으로 기본적이며 가장 널리 사용되는 것은 1994년에 Agrawal 및 Srikant가 발표한 Apriori 알고리즘으로 다음의 두 단계로 구성된다.

단계 1. 미리 결정된 최소지지도 smin 이상의 지지도를 갖는 모든 빈발 항목집합들(large itemsets)을 찾는다.
단계 2. 빈발 항목집합 L에 대한 부분집합 A를 고려한다. 미리 결정된 최소신뢰도 cmin에 대하여 supp(L)/supp(A) ≥ cmin 이면, R: A ⇒ (L-A) 형태의 규칙을 출력한다. 즉, 이 규칙의 지지도는 supp(R)=supp(L)이며, 신뢰도는 conf(R)=supp(L)/supp(A) 가 된다.

3.1. 빈발 항목집합 생성

빈발 항목집합을 도출하기 위하여 우선 하나의 항목으로 이루어지는 후보집합군(C1)을 형성하고 최소지지도 이상을 갖는 집합군(L1)을 생성한다. 다음으로 L1으로부터 두개의 항목으로 이루어지는 후보집합군(C2)를 만들고 최소지지도 이상을 갖는 집합군(L2)을 생성하며, 다시 L2로부터 세 항목으로 이루어지는 후보집합군(C3)과 빈발 항목집합군 L3를 만드는 등 이러한 과정을 더 이상 새로운 집합이 생성되지 않을 때까지 반복한다.
로부터 를 생성할 때 접합(join)연산자(*)를 사용한다. L1으로부터 C2를 만드는 경우에는 L1의 한 항목에 대한 모든 조합이 2-항목 집합인 C2가 될 것이다. 그러나 L2에서 두 집합의 조합은 최대 4개의 항목을 포함할 수 있으므로 C3를 형성할 때 L2의 집합 중 하나의 항목이 동일한 것들만 대상으로 하여야 한다. 마찬가지로 L3로부터 C4를 형성할 때는 L3의 집합 중 두개의 항목이 동일할 때 가능하게 된다. 예로써, L2=[{a,b}, {a,c}, {b,d}]라 할 때 {a,b,c}와 {a,b,d}가 3-항목 집합의 후보가 될 것이다. 그러나, C3를 구성할 때 {a,b,c}는 제외된다. 왜냐하면, {a,b,c}의 지지도는 {b,c}의 지지도 이하인데 {b,c}가 L2에 포함되지 않았다는 것은 이의 지지도가 최소지지도 미만이라는 것을 나타내기 때문이다. 이러한 과정은 Apriori 알고리즘 중 'apriori-gen' 함수에 의하여 수행된다.

예 2. (예 1.의 계속). 예 1.의 트랜잭션 데이터를 바탕으로 빈발 항목집합을 만들어보자. 우선, C1은 다음과 같다.

C1=[{a}, {b}, {c}, {d}, {e}, {f}, {g}]

최소 지지도를 0.4(5개의 트랜잭션 중 2개)라 하면 1-항목으로 이루어지는 빈발 항목집합군은 다음과 같다.

L1=[{a}, {b}, {c}, {e}, {f}, {g}]

2-항목 빈발집합의 후보 C2에 다시 최소지지도 0.4를 적용하면 L2는 다음과 같다.

L2=[{a,b}, {b,c}, {b,e}, {b,f}, {b,g}, {c,e}, {c,f}, {c,g}, {e,f}]

C3를 구성하기 위하여 L2의 집합에 접합연산자를 적용하면 다음과 같다.

C3=[{b,c,e}, {b,c,f}, {b,c,g}, {b,e,f}, {c,e,f}]

이 때 {a,b,c} 는 {a,c}가 L2에 포함되지 않았으므로 C3에 포함될 수 없음을 볼 수 있다.
C3의 모든 집합은 최소지지도 이상이므로 L3는 C3와 동일하다.

Apriori 알고리즘을 단계별로 정리하면 다음과 같다.

단계 0. 최소지지도 smin을 정한다.

k=1
C₁=[{i₁},{i₂},...,{im}]
L₁={c∈C₁| supp(c) ≥ smin

단계 1. k=k+1

Lk-1로부터 Ck 형성 (apriori-gen 함수)
단계 1-1. (join) Lk-1의 집합들을 접합하여 k- 항목 집합군을 형성한다.

C= Lk-1 * Lk-1

단계 1-2. (prune) C의 (k-1)- 항목 부분집합이 Lk-1에 속하지 않을 때 이를 모두 제거한 후 Ck를 형성한다. Ck=Φ이면 Stop.

단계 2. Ck의 집합 중 지지도가 최소지지도 이상인 것을 모아 Lk를 생성한다.

Lk={c∈Ck | supp(c) ≥ smin}

3.2. 규칙의 탐사

앞에서 언급한 바와 같이 규칙의 탐사를 위하여 우선 도출된 빈발 항목집합 L 각각에 대한 부분집합 A를 고려한다. 여기서 L은 위의 L2, L3 등을 포함한다. 그리고, 미리 결정된 최소신뢰도 cmin에 대하여 supp(L)/supp(A) ≥ cmin 이면, R: A ⇒ (L-A) 형태의 규칙을 출력한다. 즉, 이 규칙의 신뢰도 conf(R)=supp(L)/supp(A) 가 cmin 이상 되도록 하는 것이다.
현실의 경우 결과부에 하나의 항목만을 포함시키는 규칙을 도출하는 것이 이의 적용성 때문에 널리 사용되나, Agrawal & Srikant (1994)의 알고리즘에는 모든 가능한 규칙을 보다 효율적으로 탐사하는 방법이 소개되고 있다.

예 3. 예 1.의 트랜젝션 데이터에 대하여 예 2.에서 구해진 빈발 항목집합군 중 집합 L={b,c,g}을 고려해 보자. 이 때 결과부에 1-항목을 포함하는 규칙의 후보와 이에 대응되는 신뢰도는 다음과 같다.

R1: {b,c}⇒{g} conf(R1)=0.6/0.8 = 0.75
R2: {b,g}⇒{c} conf(R2)=0.6/0.6 = 1
R3: {c,g}⇒{b} conf(R3)=0.6/0.6 = 1

따라서 최소신뢰도를 0.7이라 하면 R1, R2, R3 모두 최소신뢰도 이상이 된다.

4. 결언

서언에서 언급한 시퀀스 데이터에 대하여도 유사한 알고리즘이 적용되고 있으나 여기서는 생략한다

한편, 분석할 트랜잭션 데이터에 어떤 항목들을 포함시킬 것인가는 분석에 앞서 결정하여야 할 중요한 문제 중 하나라 하겠다. 통상 슈퍼마켓 등에서 취급하는 제품 수는 수만 가지가 넘기 때문에 이러한 제품 하나하나를 모두 항목으로 선정하기에는 여러 어려움이 있다. 따라서 제품을 계층적으로 분류하여 적절한 계층에 속하는 것들을 항목으로 선정하는 방안을 사용한다. 제품분류에서 상위수준으로 갈수록 보다 포괄적인 항목(generalized item)이 사용된다.

항목이 너무 세분화되어 많은 경우 공통 항목의 트랜잭션 수가 적어 유용한 규칙을 도출하기 어려울 수 있으며, 반대로 항목이 너무 작은 경우에는 도출된 규칙이 쓸모없을 수 있기 때문에 항목의 선정이 중요하다 하겠다. 또한, 항목이 증가함에 따라 규칙탐사에 소요되는 계산시간이 급속도로 증가하기 때문에 원하는 계산복잡도에 알맞은 항목수를 결정할 필요가 있다. 항목을 선정하는데 있어 하나의 가이드라인은, 트랜잭션 데이터에 드물게 나타나는 것은 제품의 계층적 분류에서 보다 상위 수준의 항목을 사용하고, 자주 나타나는 경우에는 보다 하위 수준의 항목을 사용하여 결과적으로 트랜잭션 데이터에 빈도수가 비슷하게 되도록 하라는 것이다.

by 에이아이 2009. 8. 4. 19:10

출처1 : http://www2.cs.uregina.ca/~dbd/cs831/notes/ml/dtrees/c4.5/tutorial.html
출처2 : http://www2.cs.uregina.ca/~dbd/ (교수홈페이지)
출처3 : http://www.cs.uregina.ca/ (학과홈페이지)

설명 :

C4.5 알고리즘은 Quinlan 에 의해 디자인된 ID3 알고리즘을 확장한 알고리즘이다. ID3가 가지고 있는 여러가지 한계들을 극복하기 위하여 몇 가지 방법들을 추가한 알고리즘이다.

이 자료는 캐나다의 uregina 대학의 컴퓨터학과 교수님이 제공하고 있는 C4.5 알고리즘에 대한 설명 자료이다. C4.5에 대한 간단한 소개 및 제작한 C언어 소스코드 및 사용방법(매뉴얼)등을 제공하고 있다. 이 자료에서는 C4.5에 대해서 간단히 설명하며, C4.5 프로그램 소스 코드를 제공하고 있다. UNIX 콘솔 상태에서 실행할 수 있도록 만들어진 C언어 로 만들어진 프로그램이며, 설치방법 및 실행방법(매뉴얼)은 아래에 자세히 설명하고 있다.

내용 :  

 

References:

  • P. Winston, 1992.

C4.5 is a software extension of the basic ID3 algorithm designed by Quinlan to address the following issues not dealt with by ID3:

  • Avoiding overfitting the data
    • Determining how deeply to grow a decision tree.
  • Reduced error pruning.
  • Rule post-pruning.
  • Handling continuous attributes.
    • e.g., temperature
  • Choosing an appropriate attribute selection measure.
  • Handling training data with missing attribute values.
  • Handling attributes with differing costs.
  • Improving computational efficiency.

It is installed for use on Grendel (grendel.icd.uregina.ca), but it may be set up on a local machine as follows:

C4.5 Release 8 Installation Instructions for UNIX

  1. Download the C4.5 source code.
  2. Decompress the archive:
    1. Type "tar xvzf c4.5r8.tar" (not universally supported), or, alternatively,
    2. Type "gunzip c4.5r8.tar.gz" to decompress the gzip archive, and then
      Type "tar xvf c4.5r8.tar" to decompress the tar archive.
  3. Change to ./R8/Src
  4. Type "make all" to compile the executables.
  5. Put the executables into a "bin" subdirectory and include it in the path for command-line usage.

Manual Pages

  • c4.5: using the c4.5 decision tree generator.
  • verbose c4.5: interpreting output generated by c4.5.
  • consult: uses a decision tree to classify items.
  • consultr: uses a rule set to classify items.

Examples

Click on the links below for examples of C4.5 usage:

C4.5 소스코드 다운로드

혹시 위의 사이트에서 다운로드가 안될 경우 오른쪽 파일 아이콘을 클릭하여 다운로드 받을 수 있습니다.

 

 

 

 

 

by 에이아이 2009. 8. 4. 18:54


다중공선성의 상태는 데이터 분석 시 문제를 야기하는 하나의 특성으로 알려져있다. 특히 회귀분석에서 다중공선성의 입력 데이터의 분석은 부정적인 영향을 미치는 것으로 알려져있고, 이를 해결하는 방법에 대해서도 오래전부터 많은 연구가 있었다.

관련 연구가 불충분하기는 하지만 아마 회귀분석 뿐 아니라 다른 분석 방법 등(결정트리 등)에서도 다중공선성이 부정적인 영향을 줄 것으로 예상된다. 이에 대한 추가적인 연구들이 필요하다고 생각된다. 

상관성(피어슨 상관계수)는 익숙하지만, 다중공선성 이란 단어는 익숙하지 않은 경우가 많다. 본 자료에서는 다중공선성에 대해서 정리하고자 한다.

< 목 차 >
1. 소개 및 정의              4. 해결방법
2. 문제점                      5. SPSS에서의 활용      
3. 진단방법                   6. 참고자료    
 
1. 소개 및 정의

다중공선성(Multicollinearity)은 입력변수들 간의 상관정도가 높은 상태를 말한다.

좀 더 자세히 설명하면,
데이터가 (p+1)개의 수치형(양적) 변수를 가지며, 
x1, x2, ... , xp의 p개의 입력(독립)변수와 Y 라는 1개의 종속변수로 구성되어 있다고 하자.
다중공선성이란 위의 데이터에서 p개의 입력변수들 사이에 상관관계가 존재하는 상태를 의미한다.

그럼, 이런 의문이 들지 않는가?

다중공선성(multicollinearity)과 상관성(Correlation)이 같은 것 아닌가?
(여기서 상관성이란 피어슨 상관계수와 같이 두 변수 간의 관계를 의미한다.)

정확한 이해를 위하여 다중공선성과 상관성의 차이를 구분해보자.

상관성은 (피어슨 상관계수 등에 의해 계산되는) (1) 두 변수 간의 상관정도를 계산하고 (2) 독립변수와 종속변수를 구분하지 않는다. 반면, 다중공선성은 (1) 두개 이상의 변수들 간의 상관정도를 계산하고 (2) 독립변수들 간의 관계 만을 고려한다.

상관성과 다중공선성은 측정하는 방법에도 차이가 있다. 

 상관성  Pearson Correlation 등
 다중공선성  VIF(분산팽창계수 또는 분산팽창인수)
 Tolerance(공차한계) 등

그럼, 사전적으로 좀 더 정확하게 다중공선성의 정의 및 의미를 살펴보고 소개를 마무리하자.
아래 내용은 위키피디아 백과사전에서 <다중공선성문제>에 대한 정의(설명)을 가져온 것이다.  

다중공선성문제(Multicollinearity)는 통계학의 회귀분석에서 독립변수들 간에 강한 상관관계가 나타나는 문제이다. 독립변수들간에 정확한 선형관계가 존재하는 완전공선성의 경우와 독립변수들간에 높은 선형관계가 존재하는 다중공선성으로 구분하기도 한다. 이는 회귀분석의 전제 가정을 위배하는 것이므로 적절한 회귀분석을 위해 해결해야 하는 문제가 된다. 위키피디아 백과사전

다중공선성은 다른 용어로 공선성이라 불리기도 한다. 두 개가 같은 의미로 사용된다. 영어로도 마찬가지이다. Multicollinearity 와 Collinearity 는 같은 의미로 사용된다. multi-collinearity 라는 쓰기도 한다.

사전(영어사전, 국어사전 등)을 찾아보면 위 용어가 포함되어 있는 않는 경우가 많다. 원래 전통적으로 존재하던 단어는 아니고 통계학을 연구하는 과정에서 만들어진 신조어로 이해할 수 있다. 그러나 통계학 분야, 데이터 분석 분야에서는 연구 논문, 서적 등에서 널리 사용되는 단어이므로 통계 및 데이터마이닝 등 데이터 분석 분야를 연구한다면 많이 접하게 되는 단어이다.

2. 문제점

이번에는 데이터에 다중공선성의 특성이 존재할 때 발생하는 문제점을 고려해보자.

분석하고자 하는 데이터에 <다중공선성>이 강하게 존재할 때

이 데이터를 <회귀분석>에 적용하면 어떤 문제가 생길까?
이 데이터를 <결정트리>에 적용하면 어떤 문제가 생길까?
( 그 외의 다른 방법(알고리즘)들도 차후 고려해봐야하겠다.. )

다중공선성 데이터를 <회귀분석>에 적용하는 경우 어떤 문제가 발생할까? 

분석 결과인 회귀 계수가 불안정해지는 것이다. 회귀계수가 해당 변수의 종속변수에 미치는 영향력을 올바로 설명하지 못하게 된다. 즉, 다중공선성을 고려하지 않고 회귀분석을 수행한 후 그 결과를 해석하면 잘못된 결론(변수의 중요성을 설명할 때)을 내리게 되는 문제가 발생한다.  

다중공선성 데이터를 <결정트리>에 적용하는 경우 어떤 문제가 발생할까?
분류에 중요한 영향을 미치는 변수가 결정트리의 분리 조건에 나타나지 않게 되는 문제가 발생한다.
또한 중요변수가 사용되지 않음으로 인해서 분류율(정확도)가 낮아지게 되는 문제가 있다.

3. 다중공선성 진단(측정) 방법

이번에는 데이터에 다중공선성의 정도를 진단하는 방법에 대해서 알아보겠다.
상관성을 계산하는 방법은 잘 알다시피 피어슨 상관계수가 있다. 물론, 그 외에도 여러가지방법이 있다.

다중공선성을 계산하는 방법은 그와 별도로 존재한다.
2개 이상의 변수들 간의 상관성을 측정하기 때문에 당연히 피어슨 상관계수로는 계산할 수 없다.

물론, 상관성 매트릭스 Correlation Matrix 를 작성하여 데이터의 다중공선성을 판단하는 경우도 있지만, 각 변수의 다중공선성을 정확히 판단하기 위해서는 별도의 측정 방법이 필요하다.  

이 같이 각 변수들을 행/열의 값으로 하는

행렬을 구성한다. 대각선은 자기자신과 상관관계이므로 1이며, 행렬의 값은 대칭이므로 한쪽면만 계산한다.

이 데이터는 다중공선성의 문제가 없어 보인다.

그러나 정확한 진단을 위해서는 위의 <상관성 행렬> 보다는 진단방법과 기준을 사용해야 한다.

다중공선성의 수식으로는 VIF, Tolerance, CN 등의 계산 방법이 존재한다. (VIF:분산확대인자 또는 분산팽창계수, Tolerance:공차한계, CN:상태지수)

VIF (Variation Inflation Factor, 분산팽창지수) 측정법이 이 들중에서도 가장 많이 (일반적으로) 사용된다.
SPSS 통계 프로그램에서도 회귀분석 수행 창에서 VIF 측정을 선택하여 점검할 수 있도록 지원해주고 있다.

각 방법에 대해서는 나중에 자세히 설명해야 하겠다. (개념, 계산 방법 및 자세한 수식)  

일반적으로
VIF 즉, 분산팽창계수가 10 이상 일때 다중공선성이 존재한다고 판단한다.
Tolerance 즉, 공차한계는 0.1 이하 일때 다중공선성이 존재한다고 판단한다.
(사실, VIF 와 Tolerance는 같은 방법이다. Tolerance의 역수를 취한 값이 VIF 값이다.)  

그런데 왜 VIF 가 10이상일때 다중공선성이 존재한다고 판단할까?

참고로 VIF 값은 0에서 무한대의 값의 범위를 갖는다. 여기서 10이라는 기준값은 명확하게 정해진 것은 아니다. 단지 일반적인 기준일 뿐이다. 그러나 10 이상이라는 기준이 일반적으로 사용되는 기준이므로 구지 다른 기준값을 사용하기보다는 우리도 연구할 때 10 을 기준으로 사용하는 것이 좋겠다.


이해를 돕기 위하여 다른 질문을 해보자.

피어슨 상관계수를 계산했을 때 얼마 이상이면 두 변수간에 상관성이 있다고 할 수 있을까?
잘 알고있는 바와 같이, 피어슨 상관계수는 -1 에서 1 의 값의 범위를 갖는다.
어떤 분야, 어떤 연구에서는 절대값 0.5 이상을 기준으로 하고, 어떤 경우에는 0.7 이상을 기준으로 한다. 
즉, 명확한 기준값은 없으며 연구자, 연구분야, 연구내용에 따라 기준값을 정해야 할 것이다.  

SPSS를 사용하여 다중공선성을 측정하는 방법을 아래 글에 정리하였다.
http://ai-times.tistory.com/142


4. 해결책

이번에는 다중공선성의 문제를 해결하는 방법에 대해서 알아보자.

(0) 기본적인 방법들
- 각 입력변수를 제거/추가하면서 회귀계수의 변동정도를 파악한다.
- 다중공선성이 높다고 판단된 변수들 중에서 몇 개를 제거한 후 분석을 한다.

(1) PLS 회귀분석
PLS는 Partial Least Square 또는 Projection to Latent Structures 의 약자이다.
SPSS 18.0 버전의 프로그램에 추가된 기능이다. (2008/06 SPSS 세미나 자료 참고)  
인자분석(요인분석)을 사용하여 Latent(잠재) 변수를 찾고 활용하는 방법이다.  

(2) OLS 회귀분석
다중공선성에 적합하도록 알고리즘을 개선한 기존과 다른 회귀분석 알고리즘이다.


5. SPSS에서의 다중공선성 측정 방법 

SPSS 통계 프로그램에서는 <다중공선성>에 관련된 기능들을 지원하고 있다.

(1) 다중공선성의 진단
각 입력변수 별로 VIF 수치를 제시해준다.
이 값을 가지고 입력 데이터에 다중공선성의 정도를 파악할 수 있다. 만약, VIF 값이 높은 변수가 있다면
분석 및 모델 해석 시 고려해 주어야 한다.
 
SPSS를 사용하여 다중공선성을 측정하는 방법을 아래 글에 정리하였다.
http://ai-times.tistory.com/142


(2) PLS 회귀분석
다중공선성에 견고한 새로운 알고리즘(기능)을 버전. 18.0 (?) 부터 지원하고 있다.
기본 기능은 아니므로 이 기능을 사용하려면 사용하려면 해당 모듈을 추가 설치해야 한다.




6. 참고 자료 (인터넷 글)  

[1] http://kr.blog.yahoo.com/skk1991/754126

[2] http://cafe.daum.net/statstory/Lnxm/35?docid=10OJP|Lnxm|35|20090514174020&q=%B4%D9%C1%DF%B0%F8%BC%B1%BC%BA&srchid=CCB10OJP|Lnxm|35|20090514174020

[3] http://blog.daum.net/kjh325/5649828
     ( SPSS에서 VIF 를 측정하고 해석하는 방법 ) 

[4] http://blog.naver.com/ibuyworld/110048919032

[5] http://blog.naver.com/azureguy/130035562492

[6] http://blog.naver.com/leespecia/20089849767
     (VIF 및 Tolerance 측정 결과 및 의미)


7. 참고 자료 (파일)  

[1] 회귀분석과 다중공선성

[2] 다중공선성의 진단방법


[3] 다중공선성 진단 (한글파일)
 

by 에이아이 2009. 8. 4. 18:42
지금 이 순간에도 적들의 책장은 넘어가고 있다.

닭 대가리 보다는 소꼬리가 낫다.

지금 흘린 침은 내일 흘릴 눈물이 된다.

'Hobby : 유머' 카테고리의 다른 글

나이별 선생님의 강의스타일  (0) 2009.08.15
군대간 아들과 어머니의 편지내용  (0) 2009.08.04
무서운 할머니 .. 납량특집  (0) 2009.08.04
콩글리쉬 시리즈  (0) 2009.08.04
감춰진 뒷말 찾기  (0) 2009.08.04
by 에이아이 2009. 8. 4. 10:41

밤늦게 자율학습 끝나고… 학교 정문을 막 나서는데,


한 할머니 한 분이 보자기를 펼쳐놓고 연습장처럼 보이는 걸 팔고 계셨다.


학생은 마침 연습장을 다 써서 필요하던 참이라 하나 사려고


할머니에게 가까이 갔다.


그런데 어딘가 으스스한 분위기가 풍겨, 등이 오싹해졌다.

“할머니, 이 연습장 사고 싶은데 얼마예요?”

“학생, 1000원이야.”

“네, 한 권 주세요.”

 

할머니는 연습장을 건네주며, 갑자기 학생 팔을 잡더니,

“학생, 절대 연습장 제일 뒷장은 펴보지마.

특히 밤에 방에 혼자있을 때”라며, 무서운 표정으로 학생을 노려보았다.

 


학생은 좀 오싹했지만, 연습장이 맘에 들어 대충 대답하고 집에 왔다.


방에 들어와 생각해보니, 점점 무서운 생각이 들었다.


동시에 학생은 너무너무 궁금했다.

 


제일 뒷장을 펴면 무슨 일이 생길까….

그리고 경악했다. 거기엔…

 
값 500원.




 

'Hobby : 유머' 카테고리의 다른 글

군대간 아들과 어머니의 편지내용  (0) 2009.08.04
공부에 동기를 주는 명언들  (0) 2009.08.04
콩글리쉬 시리즈  (0) 2009.08.04
감춰진 뒷말 찾기  (0) 2009.08.04
무조건 따라하기  (0) 2009.08.04
by 에이아이 2009. 8. 4. 10:37
I am sorry 나는 소리이다.

Sit down, Please 앉아라 프리즈야.

May I help you 5월 달에 도와 드리겠습니다.

I understand 나는 물구나무섰다.

Who are you? 누가 너냐?

See you later 두고 보자

'Hobby : 유머' 카테고리의 다른 글

공부에 동기를 주는 명언들  (0) 2009.08.04
무서운 할머니 .. 납량특집  (0) 2009.08.04
감춰진 뒷말 찾기  (0) 2009.08.04
무조건 따라하기  (0) 2009.08.04
약속에 늦었을 때의 대화 (과목별)  (0) 2009.08.04
by 에이아이 2009. 8. 4. 10:32