비슷한 상품의 평균 가격을 기준으로 새 상품의 가격을 찾고 싶습니다. get-k-similar 함수는 k-Nearest Neighbors를 사용하지만이 출력은 ((list rating age price) proximity)
입니다.Scheme/Lisp에서이 데이터 구조에 대한 평균 함수를 작성하는 방법은 무엇입니까?
For example, 2-similar would be:
(((5.557799748150248 3 117.94262493533647) . 3.6956648993026904)
((3.0921378389849963 7 75.61492560596851) . 5.117886776721699))
비슷한 항목의 평균 가격을 찾아야합니다. 즉 평균 117 및 75입니다. 반복 할 수있는 더 좋은 방법이 있습니까? 내 기능이 너무 추해 보입니다.
(define (get-prices new-item)
(define (average-prices a-list)
(/ (cdr
(foldl (λ(x y) (cons (list 0 0 0)
(+ (third (car x)) (third (car y)))))
(cons (list 0 0 0) 0)
a-list))
(length a-list)))
(let ((similar-items (get-k-similar new-item)))
(average-prices similar-items)))
자유롭게 코드를 들여 쓰기 위해 자유롭게했습니다. 나는 이것이 의미있는 것을 출력한다고 상상할 수 없다. – Svante