cuốn sách gpt4 ai đã làm

Java MDSJ 产生 NaN

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 20:20:00 27 4
mua khóa gpt4 Nike

bất cứ ai cũng đúng MDSJ Có kinh nghiệm gì không? Đầu vào sau chỉ tạo ra kết quả NaN và tôi không hiểu tại sao. Tài liệu rất thưa thớt.

nhập mdsj.Data;
nhập mdsj.MDSJ;

lớp công khai MDSJDemo {
public static void main(String[] args) {
đầu vào gấp đôi[][] = {
{78,0, 60,0, 30,0, 25,0, 24,0, 7,125, 1600,0, 1,4953271028037383, 15,0, 60,0, 0,0, 0,0, 50,0},
{63.1578947368421, 51.81818181818182, 33.0, 30.0, 10.714285714285715, 6.402877697841727, 794.2857142857143, 0,823045267489712, 15,0, 20,0, 2,8571428571428568, 0,0, 75,0},
{55.714285714285715, 70.0, 16.363636363636363, 27.5, 6.66666666666666, 5.742574257425742, 577.1428571428571, 0,6542056074766355, 12,857142857142856, 10,0, 17,142857142857142, 0,0, 25,0}
};

int n=input[0].length; // số lượng đối tượng dữ liệu
double[][] out=MDSJ.classicalScaling(input); // áp dụng MDS
System.out.println(Data.format(output));
for(int i=0; i
System.out.println(output[0][i]+" "+output[1][i]);
}
}
}

这是输出:

NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN

Có lẽ tôi sử dụng MDS không đúng cách. đầu vào Mỗi mảng con có độ dài 13 nhằm mục đích biểu diễn một đối tượng, nhưng MDSJ trả về 13 điểm.

Đầu vào này cũng không thành công:

    đầu vào gấp đôi[][] = {
{3, 4, 3},
{5, 6, 1},
{0, 1, 2}
};

biên tập: Có vẻ như tôi đã sử dụng sai. Tôi đã cung cấp cho nó đầu vào như thế này:

Đối tượng A: {30d, 1d, 0d, 4.32, 234.1}
Đối tượng B: {45d, 3,21, 45, 91,2, 9,9}
Đối tượng C: {7.7, 93.1, 401, 0d, 0d}

Nhưng điều nó thực sự muốn là một ma trận khoảng cách như thế này:

     ABC
A 0 3 1
B 3 0 5
C 1 5 0

Nhưng không chính xác, vì đối với đầu vào này:

    đầu vào gấp đôi[][] = {
{0, 3, 1},
{3, 0, 5},
{1, 5, 0}
};

Tôi nhận được kết quả này:

0,8713351726043931 -2,361724203891451 2,645016918006963 
NaN NaN NaN

0,8713351726043931 NaN
-2.361724203891451 NaN
2.645016918006963 NaN

Nhưng nếu nó yêu cầu một mảng khoảng cách thì mục đích sử dụng MDS ngay từ đầu là gì? Tôi nghĩ mảng thuộc tính nên được rút gọn thành tọa độ.

câu trả lời hay nhất

Chia tỷ lệ đa chiều chuyển đổi khoảng cách thành tọa độ - Nếu bạn đã có tọa độ trong không gian nhiều chiều và muốn chúng được nhúng một cách tối ưu trong không gian ít chiều, Phân tích Thành phần Chính (PCA) có thể là kỹ thuật bạn đang tìm kiếm.

MDS cổ điển và PCA có liên quan chặt chẽ với nhau: thứ nhất, MDS chuyển đổi khoảng cách đầu vào thành tọa độ nhiều chiều sơ bộ (số chiều cao bằng số đối tượng được mô tả thứ hai, bằng cách loại bỏ trục ít quan trọng nhất, tương tự như vậy); PCA bước để giảm tính chiều của các tọa độ này.

Mục đích của việc sử dụng MDS là trong một số cài đặt, khoảng cách đầu vào không đến từ tọa độ hiện tại mà từ những thứ phi hình học khác, chẳng hạn như xếp hạng chênh lệch do mọi người đưa ra.

Ma trận khác nhau 3x3 của bạn không tuân theo bất đẳng thức tam giác bắt buộc trong không gian hệ mét (vì d[1][0]+d[0][2]

Về việc Java MDSJ sản xuất NaN, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1857338/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress