양성 사례 만 훈련으로하여 결과를 예측하는 방법은 무엇입니까?


21

간단하게하기 위해 스팸 / 스팸이 아닌 전자 메일의 고전적인 예를 작업하고 있다고 가정하겠습니다.

20000 개의 이메일이 있습니다. 이 중 2000은 스팸이라는 것을 알고 있지만 스팸이 아닌 전자 메일의 예는 없습니다. 나머지 18000이 스팸인지 아닌지를 예측하고 싶습니다. 이상적으로, 내가 찾은 결과는 전자 메일이 스팸 일 확률 (또는 p- 값)입니다.

이 상황에서 현명한 예측을하기 위해 어떤 알고리즘을 사용할 수 있습니까?

현재는 이메일이 알려진 스팸 이메일과 얼마나 유사한 지 알려주는 거리 기반 방법을 생각하고 있습니다. 어떤 옵션이 있습니까?

좀 더 일반적으로지도 학습 방법을 사용할 수 있습니까, 아니면 반드시 훈련 세트에 부정적인 경우가 있어야합니까? 감독되지 않은 학습 접근 방식으로 제한됩니까? 반 감독 방법은 어떻습니까?


1
사용할 학습 알고리즘은 모든 메일이 스팸 일 것으로 예측합니다. 현명한 학습을 ​​위해서는 두 가지 범주의 예가 있어야합니다.
JohnRos

그것은 고전적인지도 학습 방식을 배제 할 것입니다. 그러나 일종의 유사성 메트릭을 반환하는 알고리즘이 있습니까? 예 :이 이메일은 스팸 이메일과 매우 유사하지만 다른 이메일은 아닙니다.
enricoferrero

6
@JohnRos 사실이 아닙니다. 긍정적이고 레이블이없는 데이터로부터 배우는 것은 반 감독 학습에서 큰 주제이며 설명하는 것과는 다릅니다.
Marc Claesen

5
@MarcClaesen : 나는이 (매우 멋진) 연구에 익숙하지 않았다. 나는 레이블이없는 데이터가 스팸과 스팸이 아닌 것을 혼합 한 것으로 가정하여 문제를 해결할 수 있다고 가정합니다.
JohnRos

2
@JohnRos는 정확하고 시원함에 동의합니다. 내가 정말 멋진 점은 최근에 알려진 부정 없이 우발성 테이블 (예 : 정확도, 정밀도, 리콜 등) 기반으로 기존 성능 메트릭을 계산하는 방법 을 보여줄 수 있다는 사실입니다 !
Marc Claesen

답변:


19

이를 긍정적이고 레이블이없는 데이터로부터의 학습 또는 짧은 기간 동안 PU 학습이라고하며, 반 감독 학습의 틈새 시장입니다.

간단히 말해서 학습 과정에서 레이블이없는 데이터를 사용하는 것이 중요합니다. 알려진 양성에 대해 독점적으로 훈련 된 소위 단일 클래스 분류기에 비해 크게 개선 된 모델을 생성하기 때문입니다. 레이블이없는 데이터는 여러 가지 방법으로 통합 될 수 있으며, 주요 접근 방식은 다음과 같습니다.

  • 어떤 식 으로든 레이블이없는 데이터에서 가능한 음의 집합을 유추 한 다음 알려진 추정과 이러한 유추 된 음을 구별하기 위해 감독 된 모델을 훈련시킵니다.
  • 레이블이없는 세트를 음수로 취급하고 존재하는 것으로 알려진 레이블 노이즈를 설명합니다.

나는이 분야에서 활발히 활동하고 있으며 여기에 요약 해 놓지 않고 두 가지 논문과 그 안의 참고 문헌을 읽고 도메인에 대한 개요를 얻는 것이 좋습니다.


1
우수한! 참조 해 주셔서 감사합니다. RESVM과 bagged SVM은 PU 학습 설정에서 비슷하게 수행되는 것 같습니다. 두 알고리즘 중 하나의 구현 (권장 R)을 권장 할 수 있습니까? 불행히도 캐럿에 포함되지 않은 것 같습니다.
enricoferrero

1
@enricoferrero 예. 오 탐지가 없으면 유사하게 수행됩니다.이 경우 RESVM은 SVM을 크게 차지합니다 (이 작업을 수행하는 응용 프로그램에 오 탐지가 있으므로 해당 목적으로 RESVM을 설계했습니다). R 구현을 쉽게 사용할 수 있다고 생각하지는 않지만 kernlabor 같은 SVM 구현을 래핑하여 두 가지를 모두 쉽게 구현할 수 있습니다 e1071. bagging SVM과 RESVM에는 최적화해야 할 여러 하이퍼 파라미터가 있으므로 Optunity 라이브러리 (R 인터페이스가 있음)를 권장합니다 .
Marc Claesen

1
@enricoferrero 난에서 확인할 수 RESVM의 명령 줄 구현해야 할 github.com/claesenm/resvm을 그 코드가 잘 연마 아니지만. 이 특정 저장소는 Python으로 작성되었으며 EnsembleSVM 패키지 의 드라이버로 사용됩니다 .
Marc Claesen

bagged SVM 알고리즘의 또 다른 좋은 옵션 은 SVM 학습자 주위 에 bagging wrapper 와 함께 R 의 mlr 패키지 를 사용하는 입니다.
enricoferrero

7

18000 건에 스팸 사례가 많지 않다고 가정합니다. 이에 대한 학습 학습 접근법을 사용하려면 데이터에 둘 이상의 범주 / 클래스가 있어야합니다. 2000 건의 사례가 스팸이라는 것을 알고 있으므로 나머지 18000 건의 사례를 '알 수없는 카테고리'로 분류하고 감독 학습 모델을 교육하여 사례가 스팸인지 알 수없는 카테고리에 있는지 예측할 수 있습니다. 그런 다음 표본 외 모델 정확도를 확인하여 모델이 두 범주를 구분하는 데 얼마나 효과적인지 확인하십시오. 제대로 작동하면 '알 수없는'범주의 스팸 사례가 거의 없다는 가정이 보증됩니다. 잘 수행되지 않으면 데이터에서 별도의 동종 그룹을 클러스터링하고 식별하기 위해 비지도 학습자 (kmeans 등)를 사용해야합니다. 그런 다음 2000 개 스팸 이메일을 가장 많이 포함하는 클러스터를 식별하십시오. 그렇지 않은 것을 각각 스팸 및 스팸이 아닌 것으로 표시합니다. 다음으로 앞에서 설명한 것처럼지도 학습자를 사용하여 모델링을 진행할 수 있습니다.


2

OP가 말하는 것은 일류 분류 작업인데, 이는 매우 어려운 작업입니다.

이 작업에 대한 여러 연구 분야에 대한 많은 논문이 있습니다. 또한 Ensemble Learning을 기반으로 한 효율적인 고유 권한 검증 체계를 작성했습니다 . 작성자보다는 스팸 / 스팸이 아닌 스팸을 분류하기 위해 쉽게 적용 할 수 있습니다. 시도해보고 자세한 내용이 필요하면 알려주십시오 ...


귀하의 링크를 따라갈 때 404 오류가 발생합니다.
enricoferrero

오타가있었습니다. 죄송합니다, 지금 작동합니다 ;-)
처리되지 않은 예외
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.