2009-03-29 3 views
7

저는 인공 지능을 처음 사용합니다. 나는 가장 가까운 이웃 K 알고리즘과 그것을 구현하는 방법을 이해한다. 그러나 규모에 맞지 않는 물건의 거리 나 무게를 어떻게 계산합니까?K 가장 가까운 이웃 알고리즘 의심

예를 들어, 나이의 거리를 쉽게 계산할 수 있지만, 빨간색에서 파란색까지의 거리는 어떻게 계산합니까? 어쩌면 색상은 나쁜 예입니다. 왜냐하면 여전히 주파수를 사용한다고 말할 수 있기 때문입니다. 어떻게 피자를 먹는 햄버거를 먹을 까?

나는 이것을 할 수있는 영리한 방법이 있다는 느낌이 들었습니다.

미리 감사드립니다.

편집 : 아주 좋은 답변을 해주셔서 감사합니다. 정말 도움이되었고 고맙습니다. 하지만 탈출구가 있어야한다고 생각하고 있습니다.

이렇게하면됩니까? 내가 KNN 알고리즘을 사용하여 위의 세 가지 음식 모두를 제공하는 식당에서 음식을 먹을지 여부를 예측할 수 있다고 가정 해 봅시다. 물론 다른 요소가 있지만, 300 명 중 좋아하는 음식, 햄버거 150 개, 피자 100 개, 감자 튀김 50 개를 단순하게 유지해야합니다. 상식은 내가 좋아하는 음식이 먹을 것인가 아닌가에 대한 사람들의 결정에 영향을 준다는 것을 말해 준다.

이제는 사람이 햄버거로 좋아하는 음식을 입력하고 내 식당에서 음식을 먹을 지 예측할 것입니다. 다른 요인을 무시하고 이전 지식 기반을 바탕으로 상식은 피자 나 감자 튀김을 입력했을 때보 다이 특정 분야에서 가장 좋아하는 음식에 대한 가장 가까운 이웃 거리가 더 가깝습니다.

유일한 문제는 내가 확률을 사용한다는 것이고, 내가 모르고 실제 거리를 계산할 수 없기 때문에 틀릴 수도 있다는 것입니다. 거리가 아마도 다른 요인들 (가격, 시간대, 레스토랑이 가득 찼는 지 여부, 내가 쉽게 정량화 할 수 있는지 여부 등)에 비례하지 않기 때문에이 분야에 대한 예측이 너무 많거나 너무 적을 것이라는 걱정도합니다. 일부 매개 변수 튜닝을 통해이 문제를 해결할 수있을 것 같네요.

오, 모두들 훌륭한 답변을 제시하지만, 나는 오직 하나만 받아 들일 수 있습니다. 이 경우, 나는 내일 가장 높은 표를 가진 표를 수락 할 것입니다. 다시 한 번 감사드립니다.

답변

11

"치수"(또는 테이블의 열)로 데이터를 수집하는 모든 음식을 나타냅니다. 그가 좋아하는 음식 중 일부에 대한 정보와 함께, 새로운 사람 주어진 지금

 
      Burger | Pizza | Fries | Burritos | Likes my food 
person1  1  |  0 |  1 |  1 |  1 
person2  0  |  0 |  1 |  0 |  0 
person3  1  |  1 |  0 |  1 |  1 
person4  0  |  1 |  1 |  1 |  0 

을 :

녹음 데이터를 수집하고 테이블에 결과를 배치 할 수 있습니다 누구에있는 모든 사람을 위해 "좋아" 당신은 등 Pearson Correlation Coefficient, 또는 Cosine Similarity과 같은 간단한 측정을 사용하여 다른 사람에게 유사성을 측정 할 수

이제

당신은 K 가까운 이웃을 찾아 어떤 결정을 내릴 수있는 방법 .. 고급 INF에 대한

이 이것에 대한 ormation은 "collaborative filtering"을 찾는다 (그러나 나는 경고 할 것이다, 그것은 수학적으로 - y를 얻는다).

+0

내가 찾고있는 것이 었습니다! 고맙습니다. =) – wai

5

이것은 AI의 지식 표현 문제 중 하나입니다. 주관적으로 큰 역할을합니다. 예를 들어 햄버거, 피자 및 감자 튀김의 "친밀감"에 대해 당신과 나와 동의합니까?

아마도 비교할 항목이 들어있는 찾아보기 행렬이 필요할 것입니다. 당신이 과도기를 추측 할 수 있다면이 매트릭스를 줄일 수 있을지도 모르겠다. 그러나 나는 심지어 그것이 당신의 모범에서 불확실 할 것이라고 생각한다.

키는 비교하려고하는 기능을 확인하려고 할 수 있습니다. 예를 들어, 건강 상태에 따라 식품 항목을 비교했다면 더 객관적인 것을 얻을 수 있습니다.

2

"Collective Intelligence"을 보면 크기와 값이 할당되어있는 것을 볼 수 있습니다. 그것이 넷플 릭스가 영화 순위 등을 비교하는 방법입니다.

당신은 저 축척을 생각해 내고 각 값을 할당함으로써 "근접성"을 정의해야합니다.

0

이렇게하는 것이 최선의 방법은 아닙니다. 궁극적으로, 당신은 임의적 인 척도를 내놓을 필요가 있습니다.

7

글쎄, '가장 가까운'은 다소 멀어 질 수있는 측정 항목이 있음을 의미합니다. '버거', '피자', '감자 튀김'의 정량화는 근본적인 시스템 모델링만큼 많은 KNN 문제가 아닙니다. '버거', '피자'및 '튀김'이 용어 인 분석을 수행하는 시스템이있는 경우 시스템이 존재해야하는 이유는 양적 측정 방법을 결정하는 것입니다. 주어진 양의 돈을 위해 최고의 맛과 칼로리를 얻는 방법을 알아 내려고 노력한 다음, 통계가 무엇인지 알 것입니다. (물론 '최상의 맛'은 주관적이지만 문제의 또 다른 집합입니다.)

고유의 정량화 가능성이 있으므로 분석 시스템을 설계하는 방법을 알려주는 것은 아닙니다. 거기에서 무엇을 성취하고 설계하려고하는지 결정하는 것은 당신에게 달려 있습니다.

1

실제로 이러한 특성 쌍을 사용자에게 제시하고 사용자에게 근접성을 정의하도록 요청합니다. 당신은 그들에게 [동의어, 아주 외래] 또는 이와 비슷한 규모로 선물 할 것입니다. 많은 사람들이 이것을하면 비선형 속성 값에 대해 널리 인정되는 proximity 함수로 끝날 것입니다.

0

좋은 답변입니다. 당신은 단지 메트릭을 만들 수도 있고, 악의적으로 암시하는 것처럼 어떤 사람들에게 물어볼 수도 있습니다. 실제로 올바르게하기 위해서는 bayesian analysis이 필요합니다.

관련 문제