문제

나는 진단을 제공 할 Java로 프로그램을 개발할 계획입니다. 데이터 세트는 훈련을 위해 두 부분으로 나뉘어져 있고 다른 하나는 테스트를 위해 하나로 나뉩니다. 내 프로그램은 훈련 데이터 (BTW가 새 열에 30 개의 질문에 대한 답변을 포함하는 BTW, 새로운 라인의 각 레코드)는 진단 0 또는 1입니다. 데이터 진단 열의 테스트 부분에서 비어 있습니다. 데이터 세트는 약 1000 개의 레코드를 포함하고 데이터의 일부를 테스트 할 때 예측합니다.

나는 비슷한 일을 한 적이 없으므로 비슷한 문제에 대한 해결책에 대한 조언이나 정보에 감사드립니다.

나는 생각하고 있었다 자바 머신 러닝 도서관 또는 Java 데이터 마이닝 패키지 하지만 그것이 올바른 방향인지 확실하지 않습니다 ...? 그리고 나는 아직도이 도전을 어떻게 해결 해야할지 잘 모르겠습니다 ...

조언하십시오.

모두 제일 좋다!

도움이 되었습니까?

해결책

Gann Bierner가 말했듯이, 이것은 분류 문제입니다. 내가 알고있는 당신의 요구에 대한 최고의 분류 알고리즘은 Ross Quinlan 알고리즘입니다. 개념적으로 이해하기 쉽습니다.

분류 알고리즘의 기성품 구현의 경우 가장 좋은 방법은 Weka입니다. http://www.cs.waikato.ac.nz/ml/weka/. 나는 Weka를 공부했지만 너무 늦게 발견했기 때문에 사용하지 않았습니다.

Jadti라는 훨씬 간단한 구현을 사용했습니다. 그것은 당신과 같은 소규모 데이터 세트에 꽤 잘 작동합니다. 나는 그것을 꽤 많이 사용 했으므로 자신있게 그렇게 말할 수 있습니다. Jadti는 다음에서 찾을 수 있습니다.

http://www.run.montefiore.ulg.ac.be/~francois/software/jadti/

모든 것을 말하면, 당신의 도전은 웹을 통해 사용 가능한 인터페이스를 구축하는 것입니다. 그렇게하려면 데이터 세트는 제한된 사용입니다. 데이터 세트는 기본적으로 교육 세트가 이미 있다는 전제에 대해 작동하며 한 단계로 새로운 테스트 데이터 세트를 공급하면 즉시 답변을 얻습니다.

그러나 내 응용 프로그램, 아마도 당신의 응용 프로그램은 단계별 사용자 발견이었으며 의사 결정 트리 노드에서 앞뒤로 진행할 수있는 기능이있었습니다.

이러한 애플리케이션을 구축하기 위해 교육 세트에서 PMML 문서를 만들고 트리의 각 노드를 트리를 통과하여 입력 (텍스트/라디오/목록)을 제공하고 값을 다음 가능한 노드 술어.

PMML 표준은 여기에서 찾을 수 있습니다. http://www.dmg.org/ 여기에는 treemodel 만 필요합니다. NetBeans XML 플러그인은 PMML 저자를위한 좋은 스키마 인식 편집기입니다. Altova XML은 더 나은 일을 할 수 있지만 비용이 $$입니다.

RDBMS를 사용하여 데이터 세트를 저장하고 PMML을 자동으로 만들 수도 있습니다! 나는 그것을 시도하지 않았다.

프로젝트에 행운을 빕니다. 추가 입력이 필요한지 알려주십시오.

다른 팁

나는 당신이 사용하는 것이 좋습니다 Weka 당신의 임무를 위해
다양한 종류의 기능 및 모델 선택 전략을 촉진하는 사용자 친화적 인 프론트 엔드가있는 기계 학습 알고리즘 모음
코딩이나 수학을하지 않고도 이것을 사용하여 정말 복잡한 일을 많이 할 수 있습니다.
제작자들은 또한 a 꽤 좋은 교과서 그것은 데이터 마이닝의 실질적인 측면을 설명합니다
당신이 그것에 매달린 후에는 API를 사용하여 분류기를 자신의 Java 프로그램에 통합 할 수 있습니다.

"기계 학습"범주에 속하는 다양한 알고리즘이 있으며, 상황에 맞는 것은 다루는 데이터 유형에 따라 다릅니다.

데이터가 본질적으로 일련의 진단 세트에 대한 매핑으로 구성된 경우 각각 예/아니오가 될 수있는 일련의 진단으로 구성된 경우, 잠재적으로 작동 할 수있는 방법이 신경망과 테스트 데이터를 기반으로 의사 결정 트리를 자동으로 구축하는 방법이 포함된다고 생각합니다. .

Russel & Norvig ( "인공 지능 : 현대적인 접근")와 AI/머신 러닝에 대한 기타 소개와 같은 표준 텍스트를 살펴보고 특정 데이터에 대해 언급 한 알고리즘을 쉽게 조정할 수 있는지 확인합니다. . 또한 귀하의 경우에 적응할 수있는 하나 또는 두 개의 알고리즘의 일부 샘플 파이썬 코드에 대한 O'Reilly "Programming Collective Intelligence"를 참조하십시오.

스페인어를 읽을 수 있다면 멕시코 출판사 알파메가 (Alfaomega)는 최근 몇 년 동안 다양한 AI 관련 소개를 출판했습니다.

이것은 실제로 데이터 마이닝이 아니라 분류 문제입니다. 일반적인 접근법은 각 데이터 인스턴스에서 기능을 추출하고 분류 알고리즘이 기능과 결과 (0 또는 1)에서 모델을 학습하도록하는 것입니다. 아마도 30 개의 질문은 각각 고유 한 기능 일 것입니다.

사용할 수있는 많은 분류 기술이 있습니다. 지지 벡터 머신은 최대 엔트로피와 같이 인기가 있습니다. 나는 Java Machine Learning Library를 사용하지 않았지만 한눈에 나는 이것들 중 하나를 보지 못했습니다. OpenNLP 프로젝트에는 최대 엔트로피 구현이 있습니다. LIBSVM에는 지원 벡터 머신 구현이 있습니다. 라이브러리가 이해할 수있는 것으로 데이터를 수정해야 할 것입니다.

행운을 빕니다!

업데이트 : Russel과 Norvig 가이 중 일부를 논의하는 훌륭한 AI 책이라는 다른 주석 자와 동의합니다. 주교의 "패턴 인식 및 기계 학습"은 다운 및 더러운 세부 사항에 관심이 있다면 분류 문제에 대해 깊이 설명합니다.

귀하의 작업은 신경망의 고전적이며, 무엇보다도 정확한 분류 작업을 해결하기위한 것입니다. 신경망은 모든 언어에서는 다소 간단한 실현을 가지고 있으며, "기계 학습"의 "주류"이며, 다른 어떤 것보다 AI에 가깝습니다. 오류 백 전파를 통해 학습을 통해 다층 네트워크와 같은 다층 네트워크와 같은 스탠드 신경 네트워크를 구현 (또는 기존 구현을 얻는 것) 만 구현하고주기의 학습 예를 제공합니다. 그러한 학습의 시간이 지나면 실제 사례에 대한 작업을 수행하게됩니다. 여기에서 시작하는 신경망에 대한 자세한 내용은 다음과 같습니다.http://en.wikipedia.org/wiki/neural_network http://en.wikipedia.org/wiki/artificial_neural_network또한 여기에서 많은 준비된 구현에 대한 링크를 얻을 수 있습니다.http://en.wikipedia.org/wiki/neural_network_software

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top