데이터 마이닝 : 기능적 형태를 찾으려면 어떻게해야합니까?


34

나는 함수의 함수 형태를 발견 할 수 있습니다 반복 절차에 대한 궁금 y = f(A, B, C) + error_term내 유일한 입력이 관찰의 집합이다 ( y, A, BC). 의 기능적 형태 f는 알려져 있지 않습니다.

다음 데이터 세트를 고려하십시오.

AA BB CC DD EE FF
== == == == == ==
98 11 66 84 67 10500
71 44 48 12 47 7250
54 28 90 73 95 5463
34 95 15 45 75 2581
56 37 79 79 3221
68 79 1 65 9 4721
53 2 90 10 18 3095
38 75 41 97 40 4558
29 99 46 28 96 5336
22 63 27 43 4 2196
4 5 89 78 39 492
10 28 39 59 64 1178
11 59 56 25 5 3418
10 4 79 98 24431
86 36 84 14 67 10526
80 46 29 96 7 7793
67 71 12 43 3 5411
14 63 2 9 52 368
99 62 56 81 26 13334
56 4 72 65 33 3495
51 40 62 11 52 5178
29 77 80 2 54 7001
42 32 4 17 72 1926
44 45 30 25 5 3360
6 3 65 16 87288

이 예에서는을 알고 FF = f(AA, BB, CC, DD, EE) + error term있지만의 기능적 형식에 대해 잘 모르겠다 고 가정합니다 f(...).

기능적 형태를 찾기 위해 어떤 절차 / 어떻게 사용 f(...)하시겠습니까?

(Bonus point : f위의 데이터를 정의 할 때 가장 잘 추측 할 수있는 것은 무엇입니까 ? :-) 그리고 네, R^20.99를 초과 하는 "올바른"답변이 있습니다.)


1
@OP : 아래 IrishStat의 의견은 귀하의 독립 변수가 서로 어떻게 연관되어 있는지 및 / 또는 종속 변수가 이론적으로 어떻게 "패들없이 개울"을 남겼는지 상기시켜줍니다. 예를 들어, FF"연소 수율"이고 AA연료의 양, 그리고 BB당신의 상호 작용 용어를 찾을 것입니다, 산소의 양이었다 AABB
피트

@Pete : 상호 작용 용어는 절대적으로 가능합니다. 나는 내 질문을 틀리게 짜서 그것을 배제하지 않기를 바랍니다.
knorv

2
@Pete : 이것은 문제가 아니며 (실제 환경에서는 현실이라고 할 수도 있습니다) 아래 답변을 참조하십시오.
vonjd

3
Pete : 데이터에 맞는 함수의 수에 R^2 >= 0.99관계없이 최상의 성능 대 복잡성 비율을 가진 함수 를 찾고 싶습니다 (물론 샘플 적합도 제외). 그 명시를 쓰지 않아서 죄송합니다, 나는 그것이 명백하다고 생각했습니다 :-)
knorv

1
또한 이제 질문에 대한 대답이 합리적 이므로 아래 제안 된 기능 중 하나에 의해 데이터 생성 되었는지 확인하는 것이 좋습니다.
naught101

답변:


29

데이터에 가장 적합한 기능 형태 (소위 자유 형식 또는 기호 회귀)를 찾으려면이 도구를 사용해보십시오. 무료 :-)

http://creativemachines.cornell.edu/eureqa

편집 : 나는 Eureqa와 함께 그것을 주사하고 나는 갈 것이다 :

R 2 = 0.99988

AA+AA2+BBCC
R2=0.99988

나는 그것을 완벽한 적합이라고 부를 것입니다 (Eureqa는 다른 더 적합한 피팅 솔루션을 제공하지만 이것들은 조금 더 복잡합니다. Eureqa는 이것을 선호하므로 이것을 선택했습니다)-그리고 Eureqa는 약 몇 ​​초 만에 모든 것을 수행했습니다. 일반 노트북 ;-)


6
참고로 Eureqa는 유전자 프로그래밍 을 사용 하여 기호 회귀 문제에 대한 솔루션을 찾습니다.
Thies Heidecke

10
+1 자동적 인 도구를위한 인상적인 성능!
whuber

1
@vonjd, 링크에 "무료 30 일 평가판"이 표시됩니다. 당신은 무료 대안을 알고 있습니까?
데니스

3
@denis :이 R 패키지를 사용해 볼 수 있습니다 : cran.r-project.org/web/packages/rgp/index.html- 그러나 위에서 언급 한 소프트웨어만큼 정교하지는 않습니다 (아직?)
vonjd

3
Eureqa는 여전히 학술 / 비영리 단체를 위해 무료입니다
Inverse

25

만으로는 적합도의 좋은 척도가 아니지만모델링에서parsimony가 중요하다는 점을 제외하고는 여기에 들어 가지 마십시오.R2

이를 위해 탐색 적 데이터 분석 (EDA) 및 회귀 ( 단순 또는 기타 자동화 된 절차는 아님 ) 의 표준 기술은 선형 모델을 사용하는 것이 좋습니다.

f=a+bc+abc+constant+error

OLS를 사용하면 0.99 이상의 가 달성 됩니다. 이러한 결과로 기운 하나는 양측 회귀 정사각형 유혹 F를 에 , B * C , * B * C , 모든 사각형 및 제품. 이것은 즉시 모델을 생성합니다R2fabcabc

f=a2+bc+constant+error

루트 MSE가 34 미만이고 조정 된 가 0.9999 인 경우R2 . 추정 된 1.0112 및 0.988 계수는 공식을 사용하여 데이터를 인위적으로 생성 할 수 있음을 나타냅니다.

f=a2+bc+50

약 50에 상당하는 SD의 약간의 정규 분포 오차.

편집하다

@knorv의 힌트에 따라 분석을 계속했습니다. 이를 위해 원래 변수에 대해 잔차의 산점도 행렬을 검사하는 것으로 시작하여 지금까지 성공한 기술을 사용했습니다. 아니나 다를까, 사이의 상관 관계에 대한 명확한 표시가 있었다 및 잔차가 (심지어 OLS의 회귀 불구하고 F 에 대한 , 2 , 및 B * C 않았다 하지 표시 A가 "상당한"이었다). 이 정맥에서 계속 나는 차 용어들과 상관 탐구 2 , ... , 전자 2 , *afaa2bca 와 새로운 잔차는 b 2 와 작지만 매우 중요한 관계를 찾았 습니다. "매우 중요하다"는이 스누핑은 모두 20 가지의 다른 변수를 살펴 보는 것을 의미하므로,이 낚시 원정의 중요성에 대한 나의 기준은 대략 0.05 / 20 = 0.0025입니다.a2,,e2,ab,ac,,deb2

이것은 우리가 "흥미로운"계수와 "단순한"계수와의 관계를 예상하고 검색한다는 점에서 물리적 모델의 특징을 가지고 있습니다. 예를 들어, 의 추정 계수 가 -0.0092 (95 % 신뢰도로 -0.005와 -0.013 사이)임을 알았을 때 -1/100을 사용하기로 결정했습니다. 이것이 사회 또는 정치 시스템의 관찰과 같은 다른 데이터 세트라면, 나는 그러한 변경을하지 않고 OLS 추정을 그대로 사용합니다.b2

어쨌든, 개선 된 착용감은

f=a+a2+bcb2/100+30.5+error

평균 잔차 , 표준 편차 26.8, -50과 +43 사이의 모든 잔차 및 비정규성에 대한 증거는 없음 (그러한 작은 데이터 세트를 사용하더라도 오류가 균일하게 분포되어 실제로 차이를 알 수는 없음) 약 50에서 약 25까지의 잔차 표준 편차 감소는 종종 "잔차 분산의 75 %를 설명하는"것으로 표현됩니다.0


이 I 인 것을 더 특징으로 확인되지 데이터를 생성하는 데 사용되는 식 . 잔차는 일부 계수에서 상당히 큰 변화를 허용 할만큼 충분히 큽니다. 예를 들어, , b 2 및 상수 의 계수에 대한 95 % CI 는 각각 [-0.4, 2.7], [-0.013, -0.003] 및 [-7, 61]입니다. 요점은 임의의 오류가 실제로 데이터 생성 절차에 도입 된 경우 (그리고 모든 실제 데이터에 적용되는 경우), 계수 (및 관련 될 수있는 모든 변수의 결정적인 식별)를 배제 할 수 있다는 것입니다. ). 그것은 통계적 방법의 한계가 아닙니다 : 그것은 단지 수학적 사실 일뿐입니다.ab2

BTW, 강력한 회귀를 사용하여 모델에 적합

f=1.0103a2+0.99493bc0.007b2+46.78+error

잔차 SD는 27.4이고 모든 잔차는 -51과 +47 사이입니다. 본질적으로 이전 적합치보다 우수하지만 변수가 하나 적습니다. 그런 의미에서 더 포용 적이지만 계수를 "좋은"값으로 반올림하지 않았다는 의미에서는 덜 포용 적입니다. 그럼에도 불구하고, 이것은 어떤 종류의 계수가 어떤 변수를 포함해야하는지에 대한 엄격한 이론이없는 회귀 분석에서 일반적으로 선호하는 형식입니다.

R2


1
잘 했어! 지금까지 이것은 최선의 대답처럼 보입니다.
Zach

@ whuber : 좋은 일입니다-당신은 점점 가까워지고 있습니다! :-) 데이터에 수식에 오류 항을 더하여 인공적으로 생성 한 것이 사실입니다. 그러나 공식은 당신이 찾은 공식이 아닙니다. 몇 가지 용어가 빠져 있습니다. 그러나 당신은 가까이 있고 당신은 현재 선두에 있습니다 :-)
knorv

4
@ whuber 나는 이미 +1을 주었지만, 이것이 그러한 문제에 대한 접근 방식을 읽는 것이 매우 유익하다는 것을 덧붙이고 싶습니다. 당신은 어떤 식 으로든 현상금의 가치가 있습니다.
chl

1
@bill 일찍 시도했습니다. 나는 나의 설명이 당신의 제안과 내가 포함한 두 가지를위한 여지를 제공한다고 믿는다. 정답이 두 개 이상 있습니다. 잔차에 패턴이 있고 그것들을 설명하면 잔차 분산이 실질적으로 감소하기 때문에 분석을 계속하고 추가 항을 포함 시켰습니다. (응답 작성을 포함하여 초기 분석에 소요되는 총 시간은 17 분이었습니다. 시간이 많을수록 더 많은 통찰력을 얻을 수 있습니다 ...)
whuber

1
@naught 긴 공식으로 시작하여 Elastic Net (또는 유사한 변수 제거 알고리즘)을 적용하는 것이 흥미로울 것입니다. 그러한 접근법의 성공은 기능의 수를 상대적으로 작게 유지하고 그 중에서 올바른 기능을 포함하는 데 달려 있다고 생각합니다. 그러나 문제에 대해 맹목적으로 수많은 기능적 형태를 던지면 성공으로 이어질 것입니다.
whuber

5

함수 f가 표본 데이터에 의해 고유하게 정의되지 않았기 때문에 질문을 수정해야 합니다. 동일한 데이터를 생성 할 수있는 여러 가지 기능이 있습니다.

즉, 분산 분석 (ANOVA) 또는 "민감도 연구"를 통해 입력 (AA..EE)이 출력 (FF)에 어떤 영향을 미치는지 알 수 있습니다.

방금 빠른 분산 분석을 수행하고 합리적인 모델을 찾았습니다 FF = 101*A + 47*B + 49*C - 4484. 이 기능은 DD 또는 EE에 선형 적으로 의존하지 않는 것 같습니다. 물론, 우리는 모델을 계속 진행하여 2 차 및 혼합 항을 추가 할 수 있습니다. 결국 데이터에 과적 합하고 예측 가치가없는 완벽한 모델을 갖게됩니다. :)


@Pete 당신이 말했듯이 당신은 2 차, 3 차, 4 차 .... 그리고 혼합 용어를 추가 할 수 있지만 그것은 단지 말도 안됩니다. 넌센스가 있으며 가장 넌센스가 아닌 넌센스는 "통계적인 넌센스"입니다.
IrishStat

2
@IrishStat 일반적으로 혼합물과 고 차항을 추가 하는 것은 말도 되지 않습니다 . 구속과 이론을 고려하지 않고 행해질 때만 나쁘다
Pete

2
@ 애완 동물 옳은! 기존 이론이 없으면 어리석게 만듭니다.
IrishStat

@Pete : 모델에 어떤 R ^ 2를 얻습니까?
knorv

@ knorv : 기억이 나지 않지만 0.90 이상이었습니다. 회귀선에 대해 점을 그리면 점이 약간 "S"/ 입방체 모양 인 것처럼 보였으므로 함수 "f"는 누군가가 100A + 50 (B + C) + 높은 차수를 입력 한 수학적 생성이라고 추측합니다 D & E와 관련된 용어
Pete

3

대체로 머신 러닝에는 무료 점심이 없습니다.

특히, 알고리즘 A가 일부 비용 함수에서 알고리즘 B를 능가하는 경우, 느슨하게 말해서 B가 A를 능가하는 다른 많은 함수와 정확히 일치해야합니다.

/ edit : 또한 C = 4이고 sigma = 0.206 인 방사형 SVM은 쉽게 R99를 산출합니다. 이 데이터 세트를 도출하는 데 사용 된 실제 방정식을 추출하는 것은 클래스에 대한 연습으로 남습니다. 코드는 R입니다.

setwd("~/wherever")
library('caret')
Data <- read.csv("CV.csv", header=TRUE)
FL <- as.formula("FF ~ AA+BB+CC+DD+EE")
model <- train(FL,data=Data,method='svmRadial',tuneGrid = expand.grid(.C=4,.sigma=0.206))
R2( predict(model, Data), Data$FF)

-2

모든 모델이 잘못되었지만 일부는 유용합니다 : GEPBox

Y (T) =-4709.7
+ 102.60 * AA (T) -17.0707 * AA (T-1)
+ 62.4994 * BB (T) + 41.7453 * CC (T) + 965.70 * ZZ (T)

여기서 ZZ (T) = 0 = T = 1,10 = 1 기타

Y와 AA 사이에 "지연된 관계"가 있으며 관측치 11-25에 대한 평균의 설명 된 이동이 나타납니다.

이것이 연대순 또는 공간 데이터가 아닌 경우 궁금합니다.


@IrishStats "GEP Box"란 무엇입니까?
knorv

IrishStat : 데이터는 시간순이 아닙니다. 따라서 관측 순서는 중요하지 않습니다. 관측 # 11-25에 대한 평균의 변화는 단지 데이터 셋을 어떻게 검색했는지에 대한 부작용입니다.
knorv

1
@IrishStat : 방금 특정 순서로 레코드를 검색한다는 것을 의미했습니다 (생각 ORDER BY). 행에는 고유 한 특수 순서가 없습니다. 따라서 정보 손실없이 안전하게 재배치 할 수 있습니다. 내가 당신을 혼동한다면 죄송합니다 :-)
knorv

1
IrishStat : 데이터 세트가 정렬되지 않았습니다. AA(T-1)이 문맥에서 방정식 의 용어는 의미가 없습니다.
naught101

2
@naught 맞습니다. 지연된 변수 AA(T-1)또는 "평균 이동" 에 대한 "유의 한"계수를 발견하면 허위 변수 인 과적 합이 발생합니다. 이 예에서 흥미로운 것은 과적 합이 낙관적으로 (그리고 잘못) 높은 것으로 생산하는 것으로 생각했지만아르 자형2이러한 상황에서 몇 가지 중요한 변수를 찾지 못했기 때문에 잔차 분산이 크게 증가했습니다.
whuber

-3

97.2의 r 제곱

변수 YY
X1 AAS
X2 BB
X3 BBS
X4 CC 추정 / 진단 검사

잔차 수 (R) = n 25
자유도 수 = nm 20
잔차 평균 = Sum R / n -.141873E-05 제곱합
= Sum R 2 .775723E + 07
분산 = SOS / (n) 310289.
조정 분산 = SOS / (nm) 387861.
표준 편차 RMSE = SQRT (Adj Var) 622.785
평균의 표준 오차 = 표준 Dev / (nm) 139.259
평균 / 표준 오차 = 평균 / SEM -.101877E-07
평균 절대 편차 = 합 (ABS (R)) / n 455.684
AIC 값 (var 사용) = nln + 2m 326.131
SBC 값 (var 사용) = nln + m * lnn 332.226
BIC 값 (var 사용) = Wei p153 340.388
R Square 참조 = .972211
Durbin-Watson 통계 = [-A (T -1)] ** 2 / A
2 1.76580

**
모델 구성 요소 LAG COEFF 표준 PT
# (BOP) 오류 값 값

1CONSTANT                         -.381E+04   466.       .0000    -8.18

입력 시리즈 X1 AAS AA 정사각형

2Omega (input) -Factor #  1    0   .983       .410E-01   .0000    23.98

입력 된 입력 시리즈 X2 BB BB

3Omega (input) -Factor #  2    0   108.       14.9       .0000     7.27

입력 시리즈 X3 BBS BB 제곱

4Omega (input) -Factor #  3    0  -.577       .147       .0008    -3.93

입력 한대로 입력 시리즈 X4 CC CC

5Omega (input) -Factor #  4    0   49.9       4.67       .0000    10.67

 Residual PLOT

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.