יותר

פיתון, ספרייה חטובה: האם ניתן לבצע פעולה זיקה על מצולע צורה?


אני מנסה ליצור מלבן מסובב בקואורדינטות lat / lon.

בעיקרון, יש לי את הקואורדינטות של המרכז וזווית הסיבוב סביב המרכז.

האם ניתן לעשות שימוש, חטוב או גדל, או משהו אחר?


של שייפלי זִיקָהמודול תומך בטרנספורמציות זיקה בכל גיאומטריה, למשל:

מזיקה של יבוא חטוב מ- shapely.geometry יבוא LineString # קו גיאומטריה לדוגמא = LineString ([(1, 3), (1, 1), (4, 1)]) # סובב 30 מעלות צלזיוס ממקור במרכז bbox line_rot_center = affinity.rotate (קו, 30, 'מרכז') # סובב ממקור ב- (1, 1) line_rot_11 = affinity.rotate (קו, 30, (1, 1))

לסקסטנטה יש כלי שעשוי לעבוד. זה נקרא Transform, תחת "כלים לשכבות וקטוריות". להפעלת הפקודה, הגדר את הזווית, נקודת העיגון, גורם קנה המידה והתרגום. Sextante הוא הרחבה ל- gvsig, openjump, udig, אחרים. זה גם פועל משורת הפקודה.


אני לא רואה שום תכונות ב- Python או Shapely לעשות זאת, אך אתה יכול לעשות זאת באמצעות JTS (Java Topology Suite) http://tsusiatsoftware.net/jts/main.html (GEOS, ה- lib המשמש את Shapely הוא יציאה של JTS אבל ל- JTS יש יותר פונקציות)

אתה יכול להוריד את התוכנה כאן http://sourceforge.net/projects/jts-topo-suite/ ולהפעיל את testbuilder.sh או testbuilder.bat בהתאם למערכת ההפעלה שלך כדי לשחק לגילוי. לאחר שהבנתם, את היסודות תצטרכו לעשות כך גם ללא ממשק משתמש אך עם תכנות ג'אווה בלבד.

http://geoscript.org/ עשוי לעזור לכם להכין את הדבק בין קוד פיתון וג'אווה (מכיוון שמימוש אחד משתמש בג'יתון)


דשא יכול לעשות זאת באמצעות v.transform.


אתה יכול להשתמש בכריכות פיתון gdal כדי לבצע טרנספורמציות זיקה http://www.gdal.org/ogr/osr_tutorial.html

מכיוון שהוא בנוי על גבי proj / geos / gdal אתה יכול לעשות את אותם הדברים כמו ב- + חטוב יותר


הגדרת קליפ על חלקת ים

אני מתקשה לגזוז מגרש ים ים (ספציפית kdeplot) כפי שחשבתי שיהיה פשוט למדי לפי דוגמה זו במסמכי matplotlib.

לדוגמה, הקוד הבא:

תוצאות בתפוקה הבאה:

ברצוני לצלם את התוצאה כך שקווי המתאר של KDE לא יופיעו מחוץ למעגל. עד כה לא מצאתי דרך לעשות זאת. האם זה אפשרי?


איך משולשים מצולע ב- Shapely?

איך משולשים מצולע ב- Shapely? Shapely מציע למעשה פונקציה משולשת (), אך משולשת רק את קודקודי המצולע כקבוצת נקודות. עבור מצולעים קמורים הפתרון זהה, אך עבור לא קמור מקבלים משולשים נוספים. ניסיתי להסיר את כל המשולשים שנמצאים מחוץ למצולע, אך לפעמים משולשים יכולים לחצות את גבול המצולע (ראה תמונה למטה). אני מניח שהייתי יכול להסיר גם את אלה, ואז להפחית את המשולשים הנותרים מהמצולע ולשלש באופן רקורטיבי את מרכיבי ההבדל הזה. אך האם יש דרך פשוטה יותר?

דוגמה שבה משולש מצולע אינו קבוצת משנה של משולש קודקודים (גבול המצולע רחב יותר ואפור, גבולות המשולש כהים ודקים יותר): קוד לייצור גאומטריה זו:


כיצד להשתמש במשולש ממשולש הספרייה בפייתון

אני רוצה לזהות את גבול מערך הנקודות שלי. ניסיתי את המשולש של דלאונאי ממרחב קמטי, אבל אני מבין את זה:

וכשאני מבצע צורת אלפא מהמשולשים האלה, אני לא מצליח להשיג את הגבול של קבוצת הנקודות. אז אני חושב שעלי להשתמש במשולש דלאונאי מוגבל. אני בוחר בספריית המשולש כדי לבצע זאת. אבל הבעיה היא שאני לא יודע מה להאכיל למשולש הפונקציה. משולש (tri, opts = "). אני מאכיל את כל קבוצת הנקודות שלי שאני משנה למילון אבל זה מחזיר את קבוצת הנקודות שלי. אז כל אחד יכול לעזור לי להשתמש בפונקציה זו או בחלופה אחרת לביצוע איתור קווי המתאר? תודה


3 תשובות 3

אני חושב שתגית הפיתון ותגים הקשורים לשפה אחרים אינם מיותרים ויש להשתמש בהם בכל פעם שהשאלה קשורה לשפה זו משתי סיבות:

הדגשת תחביר משתמשת בתגיות בשאלה כדי להסיק את השפה בה אתה משתמש (לכן אין צורך להשתמש ברמז לעקיפת ידנית)

סינון שאלה - אני משתמש בתגית הפיתון כדי לוודא שאני רואה כמה שיותר שאלות פיתון, ולהפך אני מגדיר תגיות c # javascript וכו 'להתעלמות מהן ולכן אני רואה כמה שפחות משאלות אלו.

כפשרה בין שתי התפקידים שהוצעו עד כה:

אולי נוכל לזהות שיש:

  • רק כמה ספריות פיתון שיש בהן מומחים שרוצים ששאלות אלו יתויגו תמיד בצורה אמינה באמצעות תג ספרייה, כלומר arcpy, pyqgis
  • כמה כללי פיתון שרוצים לראות את כל שאלות הפיתון (לא משנה הספרייה) במסננים שלהם

ולהגדיר את הנחיית התיוג שלנו לפייתון כי:

  • עבור ArcPy מוחל רק תג arcpy
  • עבור PyQGIS מוחל רק התג pyqgis
  • עבור כל ספריות הפיתון האחרות מוחלים גם הפיתון וגם תג הספרייה

נראה שזה מאפשר לאלה שרוצים לראות את כל שאלות הפיתון שרק צריכים להשתמש בשלושה תגים במסנן שלהם, ואלה שרוצים לראות רק ספריות פיתון ספציפיות משתמשים רק באותם תגי ספרייה ספציפיים במסננים שלהם.

זה יאשר את השימוש הן בפיתון והן בתגיות חטובות בהמרת מצולע ל MultiPolygon עם Shapely וזו הייתה השאלה שהובילה לשאלות ותשובות.

אם שאלה כבר מתויגת עם ArcPy חטוב, PyQGIS או כל ספריית פיתון מרחבית אחרת, אני חושב שזה בטוח להניח ששפת התכנות בה משתמשים היא פייתון ותג הפיתון אינו מספק מידע נוסף.

כל עוד לוויקי התגים שלה יש רמז לשפה, יש כבר להגדיר את הדגשת התחביר עבור כל ספריית פיתון מרחבית כ- Python, ואם לא, יש תהליך פשוט זמין לתיקון שבכל תגי קידוד חסרה הגדרת שפת קוד להדגשת תחביר?

אם תייגנו כל שאלה הכוללת ספריית פיתון מרחבית עם תג הפיתון, אז אנו:

  • היו כבר כ -10,000 שאלות שתויגו במשהו שאינו ספציפי ל- GIS
  • עשויים לגלות שאנשים מפסיקים לתייג עם קשתות, pyqgis, חטובות וכו ', מה שמצריך מומחים בתגים האלה צריכים לפתוח שאלות נוספות לפני שהם מוצאים את השאלות שהם מקווים לענות עליהן.

אם נרחיב את ההיגיון שלך לעוד כמה דוגמאות, עלינו לתייג גם:

  • כל השאלות של PostGIS עם PostgreSQL (המשמשות ביישומים רבים שאינם GIS)?
  • כל השאלות של OpenLayers עם JavaScript (המשמשות ביישומים רבים שאינם GIS)?
  • כל שאלות ArcGIS עבור JavaScript עם JavaScript (המשמשות ביישומים רבים שאינם GIS)?

"כלל אצבע" בו אני משתמש בעת בדיקת תגים ב- GIS SE הוא שאם תג אינו ספציפי ל- GIS, יש להשתמש בו במשורה.

אני חושב שתגים ספציפיים ל- GIS השולטים בתגים שלנו מחזקים מדוע האתר שלנו קיים ומדוע מומחים ב- GIS ומי שרוצה ללמוד על GIS יבקרו ויצטרפו לקהילה שלנו במקום לנסות לבנות תת-קהילות GIS בתוך אתרי SE אחרים.


טרנספורמציות Affine - Qt לפיתון

פיתון - טרנספורמציה של זיקה תלת ממדית. 2017-10-18 15:16 דניאל ולדן מיובא מ- Stackoverflow. transform = lambda x: unpad (np.dot (pad (x), trans_mat)) trans_mat [np.abs (trans_mat) & lt 1e-10] = 0 # הגדר ערכים ממש קטנים לאפס הדפסה 'מטריקס טרנס הוא: & # 92n ', trans_mat trans_mat_inv = np.linalg.inv .. פיתון-טרנספורמציה מעוצבת. כן, אבל טרנספורמציה אפינית מעוצבת עוזרת לחטוב .readthedocs.io/en/latest/ אומרים: אוסף של פונקציות טרנספורמציה אפיניות נמצא במודול החיזוק החטוב, אשר מחזיר גיאומטריות שהופכו על ידי אספקת מקדמים ישירות.

טרנספורמציות גיאומטריות של תמונות¶. מטרות¶. למד להחיל טרנספורמציה גיאומטרית שונה על תמונות כמו תרגום, סיבוב, טרנספורמציה אפינית וכו '. תראה את הפונקציות הבאות: cv2.getPerspectiveTransform. טרנספורמציות¶ להלן דוגמא לפונקצית פיתון הלוקחת שני פרמטרים ומחשבת את הסכום ומחזירה את הערך המחושב. אין צורך בפונקציה שתקבל פרמטרים ותחזיר ערכים. זה יכול לעשות את שניהם, או אחד מהם, או אף אחד מהם. להלן דוגמה לפונקציה שאיננה לוקחת .. OpenCV - Affine Translation - ניתן לבצע תרגום affine על תמונה בשיטת warpAffine () של מחלקת imgproc. tranformMatrix - אובייקט Mat המייצג את מטריצת הטרנספורמציה. גודל - משתנה מהסוג השלם המייצג את גודל תמונת הפלט. דוגמאות לתמורות אפיניות כוללות תרגום, קנה מידה, הומטיות, טרנספורמציית דמיון, השתקפות, סיבוב, מיפוי גזירה והרכבים שלהן בכל צירוף ורצף. צפייה בחלל affine כהשלמה של מישור-יתר באינסוף מרחב השלכתי.

טרנספורמציה של שורות¶

אם המימד של המרחב האפיני (X, V, k) הוא לפחות שניים, אזי טרנספורמציה אפינית היא טרנספורמציה semiaffine f העונה על התנאי: אם x ≠ y ו- p ≠ q הם נקודות של X כך שקטעי הקו xy ו- pq מקבילים, ואז & # 916 & # 93 כאמור במדריכים הקודמים, OpenCV היא Open Source Commuter Vision Library שיש לה ממשקי C ++, Python ו- Java ותומכת ב- Windows כך שניתן להתקין אותה בקלות ב- Raspberry Pi עם סביבת Python ו- Linux. . וניתן להשתמש ב Raspberry Pi עם OpenCV ומצלמה מחוברת .. טרנספורמציות Affine מספקות דרך פשוטה לעשות זאת באמצעות אלגברה של מטריצה. תוכנה גיאו-מרחבית מכל הזנים משתמשת בטרנספורמציה אפינית עבור מתכנתי פיתון המעוניינים לעבוד עם נתוני רסטר, הספרייה osgeo.gdal קיימת די הרבה זמן. איתו הרעיון של שינוי גיאוגרפי בן 6 צלעות ב .. טרנספורמציות אפיניות. קובץ דוגמה ל- xform.cpp. בדוגמה זו אנו מראים את יכולתו של Qt לבצע טרנספורמציות זיקיות בפעולות ציור. ניתן לבצע טרנספורמציות בכל סוג גרפיקה המצוירת באמצעות QPainter דוגמאות לתמורות אפיניות כוללות תרגום, כיווץ גיאומטרי, התרחבות, הומטיות, השתקפות, סיבוב, מיפוי גזירה, טרנספורמציית דמיון, ודמיון והרכבים ספירליים שלהם. טרנספורמציה אפינית שקולה לטרנספורמציה לינארית ואחריה תרגום


SHAP (השקעות תוסף שאפלי) היא גישה תיאורטית של משחק להסביר את התפוקה של כל מודל למידת מכונה. הוא מקשר בין הקצאת אשראי אופטימלית לבין הסברים מקומיים באמצעות ערכי שאפלי הקלאסיים מתורת המשחקים והרחבות הקשורות אליהם (ראה מאמרים לפרטים וציטוטים).

ניתן להתקין את SHAP מ- PyPI או מ- conda-forge:

דוגמה להרכב עצים (דגמי XGBoost / LightGBM / CatBoost / scikit-learning / pyspark)

בעוד ש- SHAP יכולה להסביר את התפוקה של כל מודל למידת מכונה, פיתחנו אלגוריתם מדויק במהירות גבוהה לשיטות אנסמבל עצים (ראה מאמר Nature MI שלנו). יישומי C ++ מהירים נתמכים עבור XGBoost, LightGBM, CatBoost, סקיקיט-לומד ו פיספארק דגמי עץ:

ההסבר לעיל מראה תכונות שכל אחת מהן תורמת לדחיקת תפוקת המודל מערך הבסיס (תפוקת המודל הממוצעת מעל מערך האימונים שהעברנו) לפלט המודל. תכונות הדוחפות את החיזוי גבוה יותר מוצגות באדום, אלו הדוחפות את החיזוי נמוך יותר הן בכחול. דרך נוספת לדמיין את אותו הסבר היא שימוש בעלילת כוח (אלה מוצגים במאמר Nature BME שלנו):

אם ניקח הסברים רבים של עלילת כוח כמו זה שמוצג לעיל, נסובב אותם 90 מעלות ואז נערם אותם בצורה אופקית, נוכל לראות הסברים למערך נתונים שלם (במחברת העלילה הזו אינטראקטיבית):

כדי להבין כיצד תכונה אחת משפיעה על תפוקת המודל נוכל לשרטט את ערך ה- SHAP של אותה תכונה לעומת ערך התכונה עבור כל הדוגמאות במערך נתונים. מאחר וערכי SHAP מייצגים את האחריות של תכונה לשינוי בתפוקת הדגם, העלילה שלהלן מייצגת את השינוי במחיר הבית החזוי כאשר משתנה RM (מספר החדרים הממוצע לבית באזור). פיזור אנכי בערך יחיד של RM מייצג אפקטים של אינטראקציה עם תכונות אחרות. כדי לחשוף את האינטראקציות הללו אנו יכולים לצבוע לפי תכונה אחרת. אם נעביר את כל ההסבר טנזור לטיעון הצבע עלילת הפיזור תבחר בתכונה הטובה ביותר לצבוע. במקרה זה הוא בוחר RAD (אינדקס הנגישות לכבישים רדיאליים) מכיוון שמדגיש כי למספר החדרים הממוצע לבית יש פחות השפעה על מחיר הבית באזורים עם ערך RAD גבוה.

כדי לקבל סקירה של אילו תכונות חשובות ביותר למודל נוכל לשרטט את ערכי ה- SHAP של כל תכונה לכל מדגם. העלילה שלהלן ממיינת תכונות לפי סכום הגדלים של ערכי SHAP על כל הדגימות, ומשתמשת בערכי SHAP כדי להראות את התפלגות ההשפעות שיש לכל תכונה על תפוקת הדגם. הצבע מייצג את ערך התכונה (אדום גבוה, כחול נמוך). זה חושף למשל כי LSTAT גבוה (אחוז נמוך יותר באוכלוסייה) מוריד את מחיר הדירות החזוי.

אנחנו יכולים גם פשוט לקחת את הערך המוחלט הממוצע של ערכי ה- SHAP עבור כל תכונה כדי לקבל עלילת סרגל רגילה (מייצרת סורגים מוערמים ליציאות מרובות כיתות):

דוגמה לשפה טבעית (שנאים)

ל- SHAP תמיכה ספציפית במודלים של שפות טבעיות כמו אלה שבספריית השנאים Hugging Face. על ידי הוספת כללים קואליציוניים לערכי שאפלי המסורתיים נוכל ליצור משחקים המסבירים מודל NLP מודרני גדול תוך שימוש במעט מאוד הערכות פונקציות. השימוש בפונקציונליות זו פשוט כמו העברת צינור שנאים נתמך ל- SHAP:

דוגמה למידה עמוקה עם DeepExplainer (מודלים TensorFlow / Keras)

Deep SHAP הוא אלגוריתם קירוב מהיר לערכי SHAP במודלים של למידה עמוקה הבונה על קשר עם DeepLIFT המתואר במאמר SHAP NIPS. היישום כאן שונה מ- DeepLIFT המקורי על ידי שימוש בהתפלגות של דגימות רקע במקום בערך ייחוס יחיד, ובשימוש במשוואות Shapley כדי לייצר רכיבי לינאריה כמו max, softmax, מוצרים, חלוקות וכו '. שים לב שחלק מהשיפורים הללו גם הוצגו מאז השתלב ב- DeepLIFT. מודלים TensorFlow ודגמי Keras המשתמשים בגב האחורי של TensorFlow נתמכים (יש גם תמיכה ראשונית ב- PyTorch):

העלילה לעיל מסבירה עשר יציאות (ספרות 0-9) לארבע תמונות שונות. פיקסלים אדומים מגדילים את תפוקת הדגם ואילו פיקסלים כחולים מקטינים את הפלט. תמונות הקלט מוצגות בצד שמאל וכגביי אפור כמעט שקופים מאחורי כל אחד מההסברים. סכום ערכי ה- SHAP שווה להפרש בין תפוקת המודל הצפויה (הממוצעת על בסיס מערך הרקע) לבין תפוקת המודל הנוכחית. שים לב כי עבור התמונה 'אפס' האמצע הריק חשוב, ואילו עבור התמונה 'ארבע' היעדר חיבור למעלה הופך אותו לארבע במקום לתשע.

דוגמה למידה עמוקה עם GradientExplainer (מודלים TensorFlow / Keras / PyTorch)

שיפוע צפוי משלב רעיונות מ- Gradients Integrated, SHAP ו- SmoothGrad למשוואת ערך צפויה אחת. זה מאפשר להשתמש במערך נתונים שלם כהפצת הרקע (בניגוד לערך ייחוס יחיד) ומאפשר החלקה מקומית. אם אנו מעריכים את המודל עם פונקציה לינארית בין כל מדגם נתוני רקע לבין הקלט הנוכחי שיש להסביר, ואנו מניחים שתכונות הקלט אינן תלויות, אזי הדרגתיות צפויה תחשב ערכי SHAP מקורבים. בדוגמה שלהלן הסברנו כיצד שכבת הביניים השביעית במודל VGG16 ImageNet משפיעה על הסתברויות הפלט.

חיזויים לשתי תמונות קלט מוסברים בעלילה לעיל. פיקסלים אדומים מייצגים ערכי SHAP חיוביים המגדילים את ההסתברות למחלקה, ואילו פיקסלים כחולים מייצגים ערכי SHAP שליליים מפחיתים את ההסתברות למחלקה. על ידי שימוש ב- rank_outputs = 2 אנו מסבירים רק את שני המחלקות הסבירות ביותר עבור כל קלט (זה חוסך מאיתנו להסביר את כל 1,000 הכיתות).

מודל דוגמה אגנוסטית עם KernelExplainer (מסביר כל פונקציה)

Kernel SHAP משתמש ברגרסיה לינארית מקומית משוקללת במיוחד כדי לאמוד את ערכי ה- SHAP עבור כל דגם. להלן דוגמה פשוטה להסבר SVM רב שכבתי במערך הקשתית הקשתית.

ההסבר לעיל מראה ארבע תכונות שכל אחת מהן תורמת לדחיקת תפוקת המודל מערך הבסיס (תפוקת המודל הממוצעת מעל מערך האימונים שהעברנו) לעבר אפס. אם היו תכונות שדוחפות את תווית הכיתה גבוה יותר, הן היו מוצגות באדום.

אם ניקח הסברים רבים כמו זה שמוצג לעיל, נסובב אותם 90 מעלות ואז נערם אותם בצורה אופקית, נוכל לראות הסברים למערך נתונים שלם. זה בדיוק מה שאנחנו עושים בהמשך לכל הדוגמאות במערך מבחני הקשתית:

ערכי אינטראקציה של SHAP הם הכללה של ערכי SHAP לאינטראקציות מסדר גבוה יותר. חישוב מדויק מהיר של אינטראקציות זוגיות מיושם עבור דגמי עץ עם shap.TreeExplainer (מודל) .shap_interaction_values ​​(X). זה מחזיר מטריצה ​​לכל חיזוי, כאשר ההשפעות העיקריות הן על האלכסון והשפעות האינטראקציה אינן אלכסוניות. ערכים אלו חושפים לעיתים קרובות קשרים נסתרים מעניינים, כגון האופן שבו הסיכון המוגבר למוות מגיע לגברים בגיל 60 (ראה מחברת NHANES לפרטים):

המחברות שלהלן מדגימות מקרי שימוש שונים ב- SHAP. חפש במדריך המחברות של המאגר אם אתה רוצה לנסות לשחק עם המחברות המקוריות בעצמך.

יישום של Tree SHAP, אלגוריתם מהיר ומדויק לחישוב ערכי SHAP לעצים ולהרכבים של עצים.

מודל הישרדות NHANES עם ערכי אינטראקציה XGBoost ו- SHAP - שימוש בנתוני תמותה ממעקב אחר 20 שנה מחברת זו מדגימה כיצד להשתמש ב- XGBoost ולעצב כדי לחשוף קשרים מורכבים של גורמי סיכון.

סיווג הכנסות מפקד עם LightGBM - באמצעות מערך ההכנסות הרגיל של מפקד מבוגרים, מחברת זו מאמנת מודל עץ המעצים שיפוע בעזרת LightGBM ואז מסביר תחזיות באמצעות shap.

ליגת האגדות זוכה בחיזוי עם XGBoost - באמצעות מערך נתונים של Kaggle המונה 180,000 משחקים מדורגים מ League of Legends אנו מתאמנים ומסבירים מודל עץ המעצים את הדרגתיות עם XGBoost כדי לחזות אם שחקן ינצח את המשחק שלהם.

יישום של Deep SHAP, אלגוריתם מהיר יותר (אך מקורב בלבד) לחישוב ערכי SHAP למודלים של למידה עמוקה המבוסס על קשרים בין SHAP לאלגוריתם DeepLIFT.

סיווג ספרות MNIST עם Keras - באמצעות מערך זיהוי כתב היד MNIST, מחברת זו מכשירה רשת עצבית עם Keras ואז מסבירה על חיזויים באמצעות shap.

Keras LSTM לסיווג סנטימנטים של IMDB - מחברת זו מכשירה LSTM עם Keras במערך ניתוח הסנטימנטים של IMDB ואז מסבירה על חיזויים באמצעות shap.

יישום שיפועים צפויים לקירוב ערכי SHAP למודלים של למידה עמוקה. הוא מבוסס על קשרים בין SHAP לאלגוריתם Integrated Gradients. GradientExplainer הוא איטי יותר מ- DeepExplainer ומניח הנחות קירוב שונות.

    - מחברת זו מדגימה כיצד להסביר את הפלט של מודל VGG16 ImageNet שהוכשר מראש באמצעות שכבה קונבולסית פנימית.

עבור מודל לינארי עם תכונות עצמאיות אנו יכולים לחשב אנליטית את ערכי ה- SHAP המדויקים. אנו יכולים גם להביא בחשבון מתאם בין תכונות אם אנו מוכנים לאמוד את מטריצת התכונות המשונות. LinearExplainer תומך בשתי האפשרויות הללו.

יישום של Kernel SHAP, שיטה אגנוסטית מודל לאמידת ערכי SHAP עבור כל מודל. מכיוון שאינו מניח הנחות לגבי סוג המודל, KernelExplainer הוא איטי יותר מאלגוריתמים ספציפיים מסוג אחר.

סיווג הכנסות מפקד עם סקיקיט-לימוד - באמצעות מערך ההכנסות הרגיל של מפקד מבוגרים, מחברת זו מכשירה מסווג שכנים k הקרוב ביותר באמצעות scikit-learning ואז מסביר תחזיות באמצעות shap.

ImageNet VGG16 דגם עם Keras - הסבר את התחזיות הקלאסיות של רשת VGG16 עם עצבנות לתמונה. זה עובד על ידי החלת שיטת Kernel SHAP האגנוסטית על תמונה מפולחת בסופר-פיקסל.

סיווג קשתית העין - הדגמה בסיסית באמצעות מערך מיני הקשתית הפופולרי. זה מסביר תחזיות משישה מודלים שונים ב- scikit-learning באמצעות shap.

מחברות אלה מדגימות באופן מקיף כיצד להשתמש בפונקציות ואובייקטים ספציפיים.

ליים: ריביירו, מרקו טוליו, סאמיר סינג וקרלוס גסטרין. "מדוע עלי לבטוח בך ?: להסביר את התחזיות של כל מסווג." ההליכים של הוועידה הבינלאומית ה- 22 של ACM SIGKDD בנושא גילוי ידע וכריית נתונים. ACM, 2016.

ערכי דגימה של שאפלי: שטרומבלי, אריק ואיגור קונוננקו. "הסבר על מודלים של חיזוי וחיזויים אישיים עם תרומות לתכונות." מערכות ידע ומידע 41.3 (2014): 647-665.

DeepLIFT: שריקומאר, אבנטי, פייטון גרינסייד ואנשול קוננדייה. "לימוד תכונות חשובות באמצעות הפצת הבדלי הפעלה." הדפסה מוקדמת של arXiv arXiv: 1704.02685 (2017).

ש: דאטה, אנופם, שייאק סן ויאיר זיק. "שקיפות אלגוריתמית באמצעות השפעת קלט כמותית: תיאוריה וניסויים במערכות למידה." אבטחה ופרטיות (SP), סימפוזיון IEEE 2016 ב-. IEEE, 2016.

התפשטות רלוונטיות שכבתית: באך, סבסטיאן, ואח '. "על הסברים פיקסליים להחלטות מסווגות לא ליניאריות על ידי התפשטות רלוונטית שכבתית." PloS אחד 10.7 (2015): e0130140.

ערכי רגרסיה של שאפלי: ליפובצקי, סטן ומייקל קונקלין. "ניתוח רגרסיה בגישת תורת המשחקים." מודלים סטוכסטיים יישומיים בעסקים ובתעשייה 17.4 (2001): 319-330.

האלגוריתמים וההדמיות המשמשים בחבילה זו נבעו בעיקר ממחקרים במעבדה של סו-אין לי באוניברסיטת וושינגטון ובמיקרוסופט מחקר. אם אתה משתמש ב- SHAP במחקר שלך, אנו מעריכים ציטוט לנייר / ים המתאימים:

  • לשימוש כללי ב- SHAP תוכלו לקרוא / לצטט את נייר ה- NeurIPS שלנו (bibtex).
  • עבור TreeExplainer אתה יכול לקרוא / לצטט את נייר המודיעין של Nature Machine (גישה חופשית ל- bibtex).
  • להדמיות כוח_עלילה ויישומים רפואיים תוכלו לקרוא / לצטט את מאמר ההנדסה הביו-רפואית שלנו (גישה חופשית לסיביות).

LineString¶

יצירת אובייקט LineString דומה למדי לאופן יצירת נקודה. כעת במקום להשתמש בכפולה של קואורדינטות בודדות אנו יכולים לבנות את הקו באמצעות רשימה של אובייקטים נקודתיים חטובים או להעביר קואורדינטות-צמרות:

בואו נראה איך LineString שלנו נראה

אוקי, כעת אנו יכולים לראות כי קו משתנה מהווה מספר זוגות קואורדינטות וסוג הנתונים הוא LineString חטוב.

תכונות ופונקציות LineString¶

ל- LineString -object תכונות ופונקציות מובנות ושימושיות רבות. ניתן למשל לחלץ את הקואורדינטות או את אורכו של LineString (קו), לחשב את מרכז הקו, ליצור נקודות לאורך הקו במרחק ספציפי, לחשב את המרחק הקרוב ביותר מקו לנקודה שצוינה ולהפשט את הגיאומטריה. ראה רשימה מלאה של פונקציות מתיעוד Shapely. הנה, אנו עוברים כמה מהם.

אנו יכולים לחלץ את הקואורדינטות של LineString באופן דומה לזה עם Point

אוקי, אנו יכולים לראות כי הקואורדינטות מאוחסנות שוב כמערכים קהים כאשר המערך הראשון כולל את כל קואורדינטות ה- x והשני את כל קואורדינטות ה- y בהתאמה.

אנו יכולים לחלץ קואורדינטות x או y על ידי התייחסות למערכים אלה כדלקמן

אנו יכולים לקבל תכונות ספציפיות כגון אורך הקו ומרכז הקו (centroid) היישר מאובייקט LineString עצמו.

אוקי, אז אלה כבר מידע די שימושי למשימות GIS רבות ושונות, ואפילו לא חישבנו שום דבר! תכונות אלה מובנות בכל אובייקט LineString שנוצר. שים לב שהמרכיב המוחזר הוא Point -object שיש לו פונקציות משלו כפי שתואר קודם.


תמיכה עבור copy.copy () ו- copy.deepcopy () עם python 3.5+ # 689

שינויים בטיפול בתכונות המאפשרים להעתיק את מרבית המופעים של אובייקט flopy עם copy.deepcopy (). פותר בעיקר את הבעיה מס '591, למעט אזהרות שהזכרו @ spaulins-usgs. העתקה עשויה לעבוד בפייתון 2.7 אך אינה נתמכת.

סרבל הגיב על 21 באוקטובר 2019 ועל # 8226

הכיסוי ירד (-13.4%) ל -56.64% במשיכה f540ced ב- aleaf: getattr_issue לְתוֹך 38d96d3 על modflowpy: לפתח.

Langevin-usgs הגיב על 21 באוקטובר 2019

היי @aleaf, נראה כאילו היו כמה כשלים. הפעלתי מחדש את אלה שנראו שיהוקים מוזרים, אך שגיאת 3.5 זו נראית כמשהו שקשור לשינוי העתק זה שביצעת:

עלה הגיב על 21 באוקטובר 2019

@ langevin-usgs אני לא מבין את השגיאה הזו עם פיתון 3.5. זה לא עקבי (אותה מבנה בדיוק הועברה על המזלג שלי), ולא יכולתי לשחזר אותה באופן מקומי.

Langevin-usgs הגיב על 21 באוקטובר 2019

@aleaf, האם אתה מעודכן בפיתוח? @ jlarsen-usgs ביצע כמה שינויים אחרונים ב- obs, אם אני זוכר נכון.

עלה הגיב על 21 באוקטובר 2019

כן, פשוט הוחזר אליו לפני שדחף ל getattr_issue

Langevin-usgs הגיב על 21 באוקטובר 2019

הא! בטח היה גרמלין. נראה שזה עובד עכשיו.

Langevin-usgs הגיב 29 באוקטובר 2019

@ aleaf-usgs, נראה שמשהו נמס כאן. יש לנו כשלים לסירוגין עם 3.5 ב- Travis. אנא עקוב אחר זה.

עלה הגיב 29 באוקטובר 2019

@ langevin-usgs, זה נראה כמו בעיה עם חבילות MODFLOW 6 (בתנאי כלשהו עם פיתון 3.5, למופעים מסוג החבילה שלעיל אין מאפיין שם כמו לכל שאר מחלקות המשנה של החבילה). @ spaulins-usgs, יש לך מושג מה יכול לגרום לכך?


מחפש ספריית מניפולציה בגיאומטריה

יש לנו תוכנית מורשת שעושה קצת גזירת מצולעים - איגודים, הבדל, צומת, בלעדי או של מצולעים ורב-מצולעים.

היא משתמשת ב- GPC של אוניברסיטת מנצ'סטר - ספריית פוליגון קליפר הכללית.

כרגע אנחנו מעורבים בשכתוב. חשבתי שספריות ה- .NET 4.5 הסטנדרטיות עשויות לכלול פונקציונליות למניפולציה של גיאומטריות, אך לא הצלחתי למצוא אותן.

אנו שוקלים חלופות ל- GOC משתי סיבות:

  1. GPOC תלוי ב- dll בינארי, gpc.dll, שיש להתקין על מכונת היעד, ואנחנו מעדיפים משהו שנארז במכלול .NET.
  2. יש פונקציונליות נוספת שאנחנו צריכים ש- GPC אינה מספקת - עלינו להרחיב מצולע בסכום קבוע.

כדי להרחיב את מספר 2, מה שאנחנו רוצים זה מצולע שגבולותיו קצת מעבר למקור. נניח שיש לי קבוצה של מצולעים ישנים, ואני מצייר מצולע חדש. אני רוצה לתפוס את המצולע החדש כנגד איחוד המצולעים הישנים, ואז אני רוצה להרחיב אותו במעט, כך שהוא חופף מעט את המצולעים הקיימים.

בתחום הבעייתי שלנו, חפיפה קטנה מקובלת, אך פער - קטן ככל שיהיה - אינו. ולאור האופן שבו פועלות השוואות בין נקודות צפה, חפיפה קטנה היא הדרך היחידה להבטיח כי אין פער.

באפליקציית Legacy ניסינו שתי גישות ליצירת הרחבה זו:

  1. כתוב קוד שיורד לאורך כל נקודה, קובע את הכיוון לפנים, והעביר את הנקודה כלפי חוץ בכמות הרצויה. זה התברר כקוד מאוד מסובך בכדי להגיע נכון.
  2. צור מצולעים חדשים שהם כפילויות של המקור, העבר את הכמות הרצויה צפונה, דרום, מזרח ומערב, ואז צור את הגמר כאיחוד של כל הכפילויות. זה יוצר מצולעים עם קוצים קטנים מאוד בכל אחד מהקודקודים המקוריים, מה שמגדיל משמעותית את מספר הנקודות שיש לאחסן. מכיוון שלא הצלחנו לגרום למספר 1 לעבוד בצורה אמינה, אנו מבצעים כרגע את מספר 2.

ישנן שתי גישות חלופיות שאני יכול לחשוב עליהן:

  1. חלק מהחבילות מאפשרות להוסיף חיץ לצורה. זה בדיוק מה שאנחנו צריכים.
  2. אם זה לא עובד, אם החבילה תאפשר קנה המידה של מצולעים, נוכל פשוט להרחיב את המצולעים החיצוניים בכמות מחושבת, ולכווץ את החורים הפנימיים באותה מידה.

לכן, אנו מחפשים ספריות גיאומטריה התומכות בגזירה, או בקנה מידה או במאגר, והן מיושמות כמכלולי .NET, ללא קבצי DLL חיצוניים.


צפו בסרטון: ספריה זכרון יעקב - האם ניתן לתרגום? (אוֹקְטוֹבֶּר 2021).