Tôi đang làm việc trên một dự án bản địa hóa và sử dụng ước lượng bình phương tối thiểu để xác định vị trí của bộ phát. Tôi cần một cách để thống kê đặc điểm "thể lực" của giải pháp trong chương trình của tôi, có thể được sử dụng để cho tôi biết nếu tôi có câu trả lời hay, hoặc tôi cần các phép đo bổ sung hoặc có dữ liệu xấu. Tôi đã đọc một chút về việc sử dụng "Hệ số xác định" hoặc R bình phương, nhưng không thể tìm thấy bất kỳ ví dụ hay nào. Bất kỳ ý tưởng về làm thế nào để mô tả cho dù tôi có một giải pháp tốt, hoặc cần các phép đo bổ sung sẽ được nhiều đánh giá cao.Cách mô tả tính thể dục của Ước lượng tối thiểu của hình vuông
Cảm ơn!
Mã của tôi mang lại cho tôi những kết quả đầu ra sau,
grid_lat và grid_lon tương ứng với vĩ độ và kinh độ cho mạng lưới các vị trí mục tiêu có thể
grid_lat = [[ 38.16755799 38.16755799 38.16755799 38.16755799 38.16755799
38.16755799]
[ 38.17717199 38.17717199 38.17717199 38.17717199 38.17717199
38.17717199]
[ 38.186786 38.186786 38.186786 38.186786 38.186786 38.186786 ]
[ 38.1964 38.1964 38.1964 38.1964 38.1964 38.1964 ]
[ 38.20601401 38.20601401 38.20601401 38.20601401 38.20601401
38.20601401]
[ 38.21562801 38.21562801 38.21562801 38.21562801 38.21562801
38.21562801]
[ 38.22524202 38.22524202 38.22524202 38.22524202 38.22524202
38.22524202]]
grid_lon = [[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]
[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]
[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]
[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]
[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]
[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]
[-75.83805812 -75.83006167 -75.82206522 -75.81406878 -75.80607233
-75.79807588]]
grid_error tương ứng với cách "tốt" của một giải pháp từng Vấn đề là. Nếu chúng ta có lỗi 0.0, chúng ta có một giải pháp hoàn hảo. Lỗi lưới được tính cho mỗi điểm trên lưới tới từng vị trí đo (các đường trong phép đo dưới đây). Mỗi vị trí đo có một phạm vi ước tính cho máy phát. "Lỗi" tương ứng với phạm vi ước tính để phát từ phép đo, trừ đi phạm vi thực tế được tính toán giữa vị trí phạm vi đo và điểm lưới. Lỗi càng thấp, cơ hội chúng tôi càng gần vị trí máy phát thực tế càng lớn,
# Calculate distance between every grid point and every measurement in meters
measured_distance = spatial.distance.cdist(grid_ecef_array, measurement_ecef_array, 'euclidean')
measurement_error = [pow((measurement - estimated_distance),2) for measurement in measured_distance]
mean_squared_error = [numpy.sqrt(numpy.mean(measurement)) for measurement in measurement_error]
# Find minimum solution
# Convert array of mean_squared_errors to 2D grid for graphing
N3, N4 = numpy.array(grid_lon).shape
grid_error = numpy.array(mean_squared_error).reshape((N3, N4))
grid_error = [[ 2.33608445 2.02805063 1.85638288 1.84620283 2.02757163 2.38035108]
[ 1.73675429 1.40649524 1.21799211 1.06503271 1.27373554 1.74265406]
[ 1.44967789 0.96835022 0.62667257 0.52804942 0.91189678 1.50067864]
[ 1.70155286 1.24024402 0.9642869 1.00517531 1.32606411 1.81754752]
[ 2.40218247 2.07449106 1.91044903 1.94272889 2.15511638 2.51683715]
[ 3.29679348 3.05353929 2.93662134 2.95839307 3.11583615 3.39320682]
[ 4.27303679 4.08195869 3.99203754 4.00926823 4.13247105 4.35378011]]
# Generate the 3D plot with the Z coordinate being the mean squared error estimate
plot3Dcoordinates(grid_lon, grid_lat, grid_error)
# Generic function using matplotlib to plot coordinates
def plot3Dcoordinates(X, Y, Z):
fig = plt.figure()
ax = Axes3D(fig)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
linewidth=0, antialiased=False)
fig.colorbar(surf, shrink=0.5, aspect=5)
Dưới đây là ví dụ về xử lý thuật toán trên một mạng lớn hơn nhiều. Tôi có thể nói một cách trực quan rằng tôi có một giải pháp khá tốt vì hình dạng hội tụ trên một điểm tối thiểu (giải pháp) trơn tru, trông giống như một chiếc mũ phù thủy ngược.
Hình ảnh thứ hai hiển thị tất cả các phép đo và vị trí có giải pháp được vẽ trên đầu và điểm minumum làm giải pháp (x đỏ).
Chính xác, mối quan tâm là gì? Có vẻ như bạn trả lời câu hỏi của riêng bạn thông qua 'grid_error'. Chi tiết và lô đất của bạn rất tuyệt, nhưng chúng tôi không biết chương trình của bạn là gì và nó hoạt động như thế nào. Chúng tôi chỉ thấy đầu vào và đầu ra của họ. –
Steve-tôi có thể nói trực quan rằng tôi có câu trả lời hay, bạn thấy các khoảng tin cậy sạch sẽ rời khỏi X màu đỏ, liên quan trực tiếp đến sai số bình phương gia tăng khi chúng ta di chuyển xa điểm mục tiêu. Thách thức tôi đang phải đối mặt là làm thế nào để xác định rằng tôi có một giải pháp tốt hoặc không có lập trình mà không yêu cầu quan sát con người – Alex
Nhập một số mã (chỉ trên định nghĩa grid_error) để hiển thị cách ước tính lỗi được tạo ra – Alex