2009-03-29 36 views
7

Tôi mới đến Trí tuệ nhân tạo. Tôi hiểu K thuật toán lân cận gần nhất và làm thế nào để thực hiện nó. Tuy nhiên, làm thế nào để bạn tính toán khoảng cách hoặc trọng lượng của những thứ mà không phải là trên một quy mô?K Neighbor Algorithm nghi ngờ gần nhất

Ví dụ: khoảng cách tuổi có thể được tính toán dễ dàng, nhưng làm cách nào để bạn tính khoảng cách từ đỏ đến xanh? Có lẽ màu sắc là một ví dụ xấu bởi vì bạn vẫn có thể nói sử dụng tần số. Làm thế nào về một burger để pizza để chiên ví dụ?

Tôi có cảm giác có một cách thông minh để thực hiện việc này.

Cảm ơn trước vì sự quan tâm của các bạn.

EDIT: Cảm ơn tất cả các câu trả lời rất hay. Nó thực sự giúp đỡ và tôi đánh giá cao nó. Nhưng tôi nghĩ rằng phải có một lối thoát.

Tôi có thể làm theo cách này không? Hãy nói rằng tôi đang sử dụng thuật toán KNN của tôi để thực hiện dự đoán cho một người cho dù anh ta/cô ấy sẽ ăn tại nhà hàng của tôi phục vụ cả ba loại thực phẩm trên. Tất nhiên, có những yếu tố khác nhưng để giữ cho nó đơn giản, cho lĩnh vực thực phẩm yêu thích, trong số 300 người, 150 yêu burger, 100 yêu pizza, và 50 yêu khoai tây chiên. Ý thức chung cho tôi biết món ăn ưa thích ảnh hưởng đến quyết định của mọi người về việc ăn hay không.

Vì vậy, bây giờ một người đi vào thức ăn yêu thích của mình như bánh mì kẹp thịt và tôi sẽ dự đoán liệu anh ấy/cô ấy sẽ ăn tại nhà hàng của tôi hay không. Bỏ qua các yếu tố khác, và dựa trên cơ sở kiến ​​thức trước đó của tôi, thông thường nói với tôi rằng có cơ hội cao hơn khoảng cách gần nhất của hàng xóm gần nhất cho món ăn yêu thích của trường này gần hơn so với khi anh ta vào pizza hoặc khoai tây chiên.

Vấn đề duy nhất với điều đó là tôi đã sử dụng xác suất và có thể tôi đã sai vì tôi không biết và có lẽ không thể tính toán khoảng cách thực tế. Tôi cũng lo lắng về lĩnh vực này đưa quá nhiều/quá ít trọng lượng vào dự đoán của tôi vì khoảng cách có lẽ không phải là để quy mô với các yếu tố khác (giá cả, thời gian trong ngày, cho dù nhà hàng là đầy đủ, vv mà tôi có thể dễ dàng định lượng) nhưng tôi đoán tôi có thể có được xung quanh nó với một số điều chỉnh tham số.

Ồ, mọi người đều đưa ra một câu trả lời tuyệt vời, nhưng tôi chỉ có thể chấp nhận một câu trả lời. Trong trường hợp đó, tôi sẽ chỉ chấp nhận người có số phiếu bầu cao nhất vào ngày mai. Cảm ơn tất cả các bạn một lần nữa.

Trả lời

11

Trình bày tất cả thực phẩm mà bạn thu thập dữ liệu dưới dạng "thứ nguyên" (hoặc cột trong bảng).

Ghi "thích" cho mọi người trên mà bạn có thể thu thập dữ liệu, và đặt kết quả trong một bảng:

 
      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 

Bây giờ, được đưa ra một con người mới, với những thông tin về một số loại thức ăn anh thích, bạn có thể đo sự tương đồng với những người khác sử dụng một biện pháp đơn giản như Pearson Correlation Coefficient, hoặc Cosine Similarity vv

Bây giờ bạn có một cách để tìm K láng giềng gần nhất và thực hiện một số quyết định ..

Đối với inf tiên tiến hơn ormation về điều này, tìm kiếm "lọc hợp tác" (nhưng tôi sẽ cảnh báo bạn, nó được toán-y).

+0

Đó là những gì tôi đang tìm kiếm! Cảm ơn nhiều. =) – wai

5

Đây là một trong những vấn đề về biểu diễn tri thức trong AI. Chủ quan đóng một vai trò lớn. Bạn và tôi có đồng ý không, ví dụ, về "sự gần gũi" của một burger, pizza và khoai tây chiên?

Có thể bạn cần một ma trận tra cứu chứa các mục cần so sánh. Bạn có thể giảm ma trận này nếu bạn có thể giả định sự chuyển đổi, nhưng tôi nghĩ ngay cả điều đó cũng sẽ không chắc chắn trong ví dụ của bạn.

Chìa khóa có thể là thử và xác định đối tượng địa lý mà bạn đang cố gắng so sánh. Ví dụ, nếu bạn so sánh các mặt hàng thực phẩm của bạn về sức khỏe, bạn có thể có được một thứ gì đó khách quan hơn.

2

Nếu bạn xem "Collective Intelligence", bạn sẽ thấy rằng chúng chỉ định tỷ lệ và giá trị. Đó là cách Netflix so sánh thứ hạng phim và như vậy.

Bạn sẽ phải xác định "độ gần" bằng cách đưa ra quy mô đó và chỉ định giá trị cho từng giá trị đó.

0

Không có cách nào "tốt nhất" để thực hiện việc này. Cuối cùng, bạn cần phải đưa ra một quy mô tùy ý.

7

Vâng, 'gần nhất' ngụ ý rằng bạn có một số chỉ số về những thứ có thể ít nhiều "xa xôi". Định lượng 'burger', 'pizza' và 'khoai tây chiên' không phải là vấn đề của KNN vì nó là về mô hình hóa hệ thống cơ bản. Nếu bạn có một hệ thống mà bạn đang phân tích nơi 'burger', 'pizza' và 'fries' là các thuật ngữ, lý do cho hệ thống tồn tại sẽ xác định cách chúng được định lượng - như nếu bạn cố gắng tìm ra cách để có được hương vị tốt nhất và ít calo nhất cho một lượng tiền nhất định, sau đó ta-da, bạn biết số liệu của bạn là bao nhiêu. (Tất nhiên, 'hương vị tốt nhất' là chủ quan, nhưng đó là một tập hợp các vấn đề khác.)

Điều này không tùy thuộc vào việc định lượng vốn có và do đó cho bạn biết cách thiết kế hệ thống phân tích của bạn; tùy bạn quyết định những gì bạn đang cố gắng hoàn thành và thiết kế các số liệu từ đó.

1

Tôi thực sự sẽ trình bày các cặp thuộc tính này cho người dùng và yêu cầu họ xác định sự gần gũi của họ. Bạn sẽ trình bày chúng với quy mô đạt từ [từ đồng nghĩa..rất nước ngoài] hoặc tương tự. Có nhiều người làm điều này, bạn sẽ kết thúc với một hàm lân cận được chấp nhận rộng rãi cho các giá trị thuộc tính phi tuyến tính.

0

Câu trả lời hay. Bạn chỉ có thể tạo ra một số liệu, hoặc, như malach gợi ý, hãy hỏi một số người. Để thực sự làm đúng, có vẻ như bạn cần bayesian analysis.

Các vấn đề liên quan