2

데이터 세트가 여러 개 있고 각 데이터 세트에는 다소 바나나 모양의 영역과 고밀도 모양의 영역이 있습니다. . DBSCAN 알고리즘을 사용하여이 영역을 나머지 데이터와 차별화 할 수 있었지만, 감독 된 알고리즘을 사용하여 어떤 클러스터가 바나나인지 알 수 있었고 어느 ​​두 클러스터가 고밀도 BLOB인지, 그리고 나는 어디서부터 시작해야할지 모르겠습니다.감독 된 기계 학습 : 모양과 밀도 (파이썬)를 기반으로 데이터 클러스터 유형 분류

3 가지 카테고리 (바나나, 블롭, 둘 다 아님)가 있으므로 최상의 접근 방식 (바나나 또는 바나나인지, 블롭인지 블롭인지 평가)은 두 가지 별도의 로지스틱 회귀 분석을 수행할까요? 또는 세 가지 범주를 하나의 신경망에 통합하는 좋은 방법이 있습니까?

여기에는 세 가지 데이터 세트가 있습니다. 각각 바나나는 빨간색입니다. 첫 번째 경우, 두 개의 얼룩은 녹색과 파란색이고, 두 번째 얼룩은 청록색과 녹색이며, 세 번째 얼룩은 파란색과 녹색입니다. 나는 그들에게 내가 코드를 실행할 때마다 선택 손을하지 않아도 난 후 바나나와 방울 지역에 레이블을, 지금 즉 차별화 한 다른 지역 (에 프로그램을하고 싶습니다.

Data set 1 Data set 2 Data set 3

는 는
+0

Z 축의 크기가 다른 점은 다른 축보다 결과에 미치는 영향이 적음을 유의하십시오. –

+1

모든 모델에서 그렇습니다. 의사 결정 트리는 규모를 신경 쓰지 않으며 클러스터 **를 분류하는 데 문제가되므로이 기하도 중요하지 않습니다. 일부 기하학적 특징으로 전체 집합을 표현해야하므로 여기서는 그렇지 않습니다. . – lejlot

답변

0

는 신경 네트워크의 도움은 "pybrain"도서관은 최선이 될 수 없습니다.

당신은. 피드 포워드 네트워크와 신경 그물을 설정 한 각 클래스에 대한 출력이되도록 설정할 수

데이터에 포함될 것으로 예상되는 개체의 수를 나타냅니다.

편집 : 질문을 완전히 오해 한 경우 죄송합니다. 네트워크를 구성하여 클러스터를 구별 할 수있는 기존 데이터가 있다고 가정합니다.

3 개의 카테고리가있는 경우 NN에 3 개의 출력을 갖거나 각각 true 또는 false 값을 출력하는 단일 NN을 가질 수 있습니다.

2

python을 사용하면서 가장 큰 옵션 중 하나는 큰 라이브러리로 시작하여 여러 가지 접근 방식을 제공하므로 어느 것이 가장 적합한 지 선택할 수 있습니다. 그러한 라이브러리 중 하나는 sklearnhttp://scikit-learn.org/stable/입니다.

문제 자체로 돌아 가기. 시도해야하는 모델은 무엇입니까?

  • 서포트 벡터 머신 -이 모델은 잠시 동안 주변에, 주로 인해 우아한 수학적 해석과 사용의 용이성, 많은 분야에서 골드 표준이있다 (그것에 대해 다음 고전 걱정을 훨씬 덜 매개 변수가 예를 들어 신경망). 그것은 이진 분류 모델이지만, 라이브러리는보기 자동을위한 다중 분류 버전을 create 것이다 당신
  • 나무
  • 결정 - 모델 종종 더에 사용 - 이해하기 쉬운, 그러나 매우 "거친"결정 경계
  • 임의의 숲이 (가) 작성 통계 사회,
  • K-가까운 neighours - 당신이 그렇게 쉽게 데이터의 모양을 정의 할 수있는 경우가 있습니다 물론

이해하는 것이 매우 쉽게 유지하면서, 그것은 아주 좋은 결과를 제공하지만 가장 간단한 방법, 많은 사람들이 있지만, 나는이 것들로 시작하는 것이 좋습니다.이들 모두는 다중 클래스 분류를 지원하므로 세 클래스로 문제를 인코딩하는 방법을 걱정할 필요가 없습니다. 단순히 두 개의 행렬 xy 형태로 데이터를 작성하십시오. 여기서 x은 입력 값이고 y은 해당 클래스의 벡터입니다 (예 : 1에서 3까지의 숫자). 라이브러리에서 서로 다른 분류의

시각화 :

classifiers comparision

그래서 클러스터의 형태를 표현하는 방법을 질문 남아있다 - 우리는 고정 된 길이가 실제 벡터를 평가해야합니다, 그래서 실제로 기능 할 수 말하다? 질량

  • 센터 (만약 위치 사항)
  • 비대칭/첨도
  • 공분산 행렬 (또는 고유 값()의 ​​경우 회전 사항)
  • 로컬 밀도 추정의 어떤 일부
  • 히스토그램 통계 (모양에 점의 쌍 사이에 pairwise 유클리드 거리의 히스토그램)
  • 많은, 더 많은!

상당히 포괄적 인 목록과 여기에 대한 자세한 개요 (3 차원 물체에 대한)이 : http://www.global-edge.titech.ac.jp/faculty/hamid/courses/shapeAnalysis/files/3.A.ShapeRepresentation.pdf

몇 가지 설명을 묘사하는 방법을 만드는 : http://web.ist.utl.pt/alfredo.ferreira/publications/DecorAR-Surveyon3DShapedescriptors.pdf

도 매우 유익한 프리젠 테이션이는 스케일/위치/회전 불변 (여기서 관련이있는 경우)

+0

이 방법이 나를 위해 어떻게 작동하는지 잘 모르겠습니다. 나는 명확히 할 이미지를 추가했다. – user2635929

+1

감독 학습에서 훈련 세트'(X, Y)'를 작성해야하는데, 여기서'X '는 입력 클래스의 표현이고'Y'는 예상 클래스이며, 제안 된 각 메소드는 그러한 매핑을 학습하고 클래스를 제공 할 수 있습니다 어떤 새로운'x'에 대해서. ** point ** 또는 ** cluster **를 분류 할 것인지 여부는 질문에서 분명하지 않습니다. 점이 간단하다면'X'는 점의 행렬입니다 ** ** 클러스터 ** 당신은 어떻게 든 클러스터 비트를 추출 할 필요가 있습니다 (점멸 - 고정 길이 벡터로 표현하기위한 다른 기하학 양 - 'R^n' space) – lejlot

+0

어떤 점이 어떤 클러스터에 있는지는 이미 알고 있습니다. 이제 모양을 기반으로 특정 클러스터를 정의하고 싶습니다. – user2635929

0

나는 당신이 달성하고자하는 것에 대해 여전히 이라고 확신한다. e.

당연히 당신에게 좋은 대답을주기가 어렵습니다.

데이터가 3D 인 것 같습니다. 3D에서는 예를 들어 클러스터의 알파 모양을 계산하고 볼록한인지 확인합니다. 왜냐하면 당신의 "바나나"는 아마 볼록이 아니기 때문입니다.

예를 들어 다음을 측정 할 수도 있습니다. 클러스터 센터가 실제로 클러스터 내에 있는지 여부 그렇지 않은 경우, 클러스터는 blob이 아닙니다. 세 축을 따라 연장하는 것이 같은지 아닌지 측정 할 수 있습니다.

결국, 당신은 일부 "바나나"의 개념이 필요합니다.

+0

클러스터링 알고리즘은 플롯의 각 지점을 클러스터 중 하나로 레이블링하는 인덱스 배열을 출력합니다. 그런 다음 알고리즘에서 배열의 인덱스 1을 사용하여 모든 포인트를 분석하고 인덱스 1이 바나나 모양과 일치하는지 여부를 결정할 수있게하려고합니다. – user2635929

+0

"바나나 모양"을 정의하십시오. –

+0

그림에서보세요 ... 상당히 명백합니다. – user2635929