मैं स्थानीयकरण प्रोजेक्ट पर काम कर रहा हूं और ट्रांसमीटर के स्थान को निर्धारित करने के लिए कम से कम वर्ग अनुमान का उपयोग कर रहा हूं। मुझे अपने कार्यक्रम के भीतर अपने समाधान की "फिटनेस" को सांख्यिकीय रूप से चिह्नित करने का एक तरीका चाहिए, जिसका उपयोग मुझे यह बताने के लिए किया जा सकता है कि मेरे पास कोई अच्छा जवाब है, या मुझे अतिरिक्त माप की आवश्यकता है, या खराब डेटा है। मैंने "निर्धारित गुणांक" या आर-स्क्वायर का उपयोग करने के बारे में कुछ पढ़ा है, लेकिन कोई अच्छा उदाहरण नहीं ढूंढ पाया है। इस बात पर कोई विचार है कि मेरे पास कोई अच्छा समाधान है या नहीं, या अतिरिक्त माप की आवश्यकता है, इसकी सराहना की जाएगी।कम वर्ग अनुमानों की फिटनेस का वर्णन कैसे करें
धन्यवाद!
मेरे कोड मेरा पीछा आउटपुट देता है,
grid_lat और grid_lon अक्षांश के अनुरूप और देशांतर संभव लक्ष्य स्थानों की ग्रिड
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 के लिए निर्देशांक कैसे एक समाधान प्रत्येक की "अच्छा" से मेल खाती है मुद्दा यह है। अगर हमारे पास 0.0 की त्रुटि है, तो हमारे पास एक आदर्श समाधान है। प्रत्येक माप स्थिति (नीचे माप में ट्रैक) के लिए ग्रिड पर प्रत्येक बिंदु के लिए ग्रिड त्रुटि की गणना की जाती है। प्रत्येक माप की स्थिति ट्रांसमीटर के लिए अनुमानित सीमा है। "त्रुटि" माप से ट्रांसमीटर तक अनुमानित सीमा से मेल खाती है, माप सीमा स्थान और ग्रिड बिंदु के बीच गणना की गई वास्तविक सीमा को घटाती है। कम त्रुटि, अधिक से अधिक मौका हम वास्तविक ट्रांसमीटर स्थान
# 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)
यहाँ के करीब हैं एक बहुत बड़ा ग्रिड पर एल्गोरिथ्म प्रसंस्करण का एक उदाहरण छवि है। मैं दृढ़ता से बता सकता हूं कि मेरे पास एक बहुत अच्छा समाधान है क्योंकि आकार एक न्यूनतम बिंदु (समाधान) पर आसानी से परिवर्तित होता है, जो एक उलटा चुड़ैल टोपी की तरह दिखता है।
दूसरी छवि शीर्ष पर प्लॉट किए गए समाधान के साथ सभी माप और स्थानों को दिखाती है, और समाधान (लाल एक्स) के रूप में न्यूनतम बिंदु।
चिंता, वास्तव में चिंता क्या है? ऐसा लगता है कि आप 'grid_error' के माध्यम से अपने प्रश्न का उत्तर देते हैं। आपके विवरण और भूखंड बहुत अच्छे हैं, लेकिन हम नहीं जानते कि आपका प्रोग्राम क्या है और यह कैसे काम करता है। हम केवल इनपुट और उनके आउटपुट देखते हैं। –
स्टीव- मैं दृढ़ता से बता सकता हूं कि मेरे पास एक अच्छा जवाब है, आप लाल एक्स से दूर जाने वाले स्वच्छ आत्मविश्वास अंतराल देखते हैं, जो सीधे बढ़ते औसत वर्ग त्रुटि से संबंधित होते हैं क्योंकि हम लक्ष्य बिंदु से दूर दूर जाते हैं। चुनौती का सामना करना यह है कि यह निर्धारित करने के लिए कि मेरे पास एक अच्छा समाधान है या मानव अवलोकन की आवश्यकता के बिना प्रोग्रामेटिक रूप से नहीं है – Alex
त्रुटि अनुमान उत्पन्न होता है यह दिखाने के लिए कुछ कोड (केवल ग्रिड_error परिभाषा के ऊपर) जोड़ा गया है – Alex