נביא שקר

הנבואה ניתנה לשוטים

קטגוריה: airbnb

ירושלים ותל-אביב בראי אייר-בי-אנד-בי

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

הקלאסטרינג הוא החלק המעניין ביותר בעיני.

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

מתחילים.

דירוג

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

Screen Shot 2017-10-29 at 9.44.24 PM

והנה ירושלים

Screen Shot 2017-10-29 at 10.18.28 PM.png

ירוק זה 5 כוכבים, צהוב זה 4.5, כתום זה 4, ואדום זה 3.5.

ezgif-1-83ca9ac1c4.gif

ezgif-1-d382a01ebc

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

וזה באמת בעיקר ירוק וצהוב. מסתבר שמבין הדירות המדורגות, 55% מדורגות כ-5 כוכבים, ו-35% מדורגות כ-4.5 כוכבים. כלומר, אין כאן סיגנל בכלל, אלא אם כן הסיגנל הוא לברוח כמו מאש מכל דבר שהוא פחות מ-4.5 כוכבים.

דירוג לפי תת-תכונה

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

הנה דירוג מיקום הדירות בתל-אביב:

Screen Shot 2017-10-29 at 10.29.19 PM

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

הנה דירוג מיקום הדירות בירושלים

Screen Shot 2017-10-29 at 10.38.47 PM

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

מחיר

הנה מחיר דירה ללילה בתל-אביב. ירוק זה בין 0 ל-100 דולר, צהוב זה 100 ל-200, כתום זה 200 ל-300, ואדום זה מעל 300. החציון הוא 87 דולר, אגב.

Screen Shot 2017-10-29 at 10.52.40 PM.png

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

אני לא טורח להראות את ירושלים כי זה פחות מעניין. העיר העתיקה זה מקום יקר – שוק.

אשכול דירות לפי תיאור המשכיר

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

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

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

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

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

הנה תל-אביב. דירות סמוכות באותו צבע נמצאות באותו אשכול. כל איזור מראה את 3 המילים המובילות/בולטות לתיאור תת-האיזור הספציפי.figTLV.png

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

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

והנה ירושלים:

figJer

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

מודעות פרסומת

קרוב לים, האמנם? (ניתוח דירות Airbnb בתל-אביב)

Airbnb הוא אתר להשכרת דירות לטווח קצר. הנה למשל מפה המציגה כמה דירות בתל-אביב והמחיר ללילה:

אני מגיע

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

באתי להזיע

אז…קרוב לים?

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

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

=====

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

Screen Shot 2015-12-16 at 10.26.09 AM

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

הו

…החלטתי שזה לא באמת משנה.

אז יש לנו את המרחק בין כל דירה לים. האם יש קשר בין המרחק לבין השימוש במילה ״חוף״ בתיאור? נראה שכן:

boxplot

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

דרך אחרת לנתח את המידע זה לשאול ״מה ההסתברות שבעל דירה ישתמש במונח ׳חוף׳ כפונקציה של מרחק מהחוף?״

הנה:

logistic

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

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

===

מתי לגיטימי בעצם להשתמש במונח ׳חוף׳ בתיאור דירה? מנקודת המבט של שוכר, הדרך הנכונה לענות על שאלה שכזו זה פשוט לשאול ״מה המרחק מהחוף שהיית מקבל כ׳קרוב לחוף׳?״. אפשר להפנות שאלה שכזו ל-amazon mechanical turk, אבל מכיוון שלא מתחשק לי לבזבז את כספי הסנדוויץ׳ שלי, ננסה לענות על שאלה אחרת – מהו מרחק לגיטימי מהחוף בעיני בעלי הדירה? אם נגדיר באופן שרירותי משהו הסכמה בין בעלי דירה כ״מעל 50% סיכוי שבעל דירה ישתמש במונח״, אז המרחק ממנו זה לגיטימי להתחיל להשתמש ב׳חוף׳ הוא משהו כמו 1.25 ק׳מ. בדיקה אקראית במפות של גוגל מראה שנקודה אקראית במרחק 1.25 ק׳מ מהחוף היא בערך במרחק 15-20 דקות צעידה מחוף. הניחוש שלי הוא שרוב האנשים יגידו ש׳קרוב לחוף׳ זה יותר כמו 5-10 דקות הליכה, אבל זה רק ניחוש.

===

כמובן שבכל הניתוח הזה לא לקחתי בחשבון שהשימוש במונח ׳חוף׳ בא בהקשר מסויים. אולי אנשים כתבו ״לא קרוב לחוף״, או ״עשרים דקות מהחוף״. לקחתי את כל התיאורים שהכילו משפטים כמו ״x דקות מהחוף!״ ושרטטתי את x כנגד המרחק האמיתי מהחוף, בהנחה שאדם ממוצע צועד בקצב של 5 קמ״ש, והולך בקו ישר מהדירה לחוף:

קיץ על החוף

קודם כל זה נחמד שיש התאמה לינארית. הגרף הזה מראה שאם בעל דירה אומר שאתה נמצא במרחק x דקות מהחוף, כדאי שתוסיף 3 דקות לפחות. וזה, כאמור, בהנחה שמדובר בקו אווירי ישר. רוב הסיכויים שצריך להוסיף לפחות 5 דקות ל-x. זה גם קצת מעניין לראות את הפיזור סביב ׳5 דקות׳ מבחינת בעלי דירות, לעומת המציאות.

מה עוד אפשר לעשות עם תיאורי דירות? למשל, אפשר להסתכל על ביטויים כמו ״מרכז העיר״ או ״לב תל-אביב״ ולנסות להראות גרפית באמצעות מסווגים שונים איפה זה מרכז העיר המנטלי.

אבל זה נושא לפוסט אחר.