ירושלים ותל-אביב בראי אייר-בי-אנד-בי
מאת נביא שקר
תקציר הפוסט: הורדתי מלא מידע על דירות להשכרה בתל-אביב וירושלים מאייר-בי-אנד-בי (להלן אבנ׳ב) ואני מציג אותו בדרכים שונות, כולל מציאת האיזורים המדורגים גבוה, מציאת האיזורים היקרים, וקלאסטרינג של הדירות לתתי-איזורים שונים לפי תיאור הדירות.
הקלאסטרינג הוא החלק המעניין ביותר בעיני.
הערה טכנית: אבנ׳ב לא מאפשרים גישה נוחה לכל הדירות בתל-אביב בבת-אחת. כמשתמש, צריך לסמן איזור שמעניין אותך ולבצע חתך גיאוגרפי. כתבתי סקריפט פיית׳ון שמחלק עיר לתתי-איזורים ומבצע תתי-חיפושים בתוך תתי-האיזורים. זה טיפה מעצבן, אבל לא נורא. סוף התהליך הוא כמה אלפי דירות בתל-אביב וירושלים, כולל מחיר ההשכרה, תיאור הדירה, דירוג הדירה, דירוג האיזור, תיאור המשכיר, מיקום הדירה, וכו׳.
מתחילים.
דירוג
קודם כל נייצר מפות על סמך דירוגי הדירות. הנה תל-אביב
והנה ירושלים
ירוק זה 5 כוכבים, צהוב זה 4.5, כתום זה 4, ואדום זה 3.5.
אני לא יודע אם שני קוראי הבלוג רואים משהו במידע הזה, לי זה נראה כמו ערבוביה של ירוק וצהוב. יש קצת כיס אדום ולא מפתיע באיזור התחנה המרכזית ושוק הכרמל בתל-אביב, אבל זהו בערך.
וזה באמת בעיקר ירוק וצהוב. מסתבר שמבין הדירות המדורגות, 55% מדורגות כ-5 כוכבים, ו-35% מדורגות כ-4.5 כוכבים. כלומר, אין כאן סיגנל בכלל, אלא אם כן הסיגנל הוא לברוח כמו מאש מכל דבר שהוא פחות מ-4.5 כוכבים.
דירוג לפי תת-תכונה
אבנ׳ב מציע גם תתי-דירוגים מעבר לדירוג הכללי של הדירה. אפשר לדרג את הניקיון, את המיקום, את הדיוק, את הצ׳ק-אין, ואת התקשור עם בעל המקום.
הנה דירוג מיקום הדירות בתל-אביב:
זה כבר קצת יותר מעניין. מי שרוצה לשחק בזום עם מפה יותר אינטראקטיבית מוזמן לעשות זאת כאן.
הנה דירוג מיקום הדירות בירושלים
גם כאן נראה שיש טיפ-טיפה אות ברעש, וגם כאן אפשר לשחק במפה אינטראקטיבית
מחיר
הנה מחיר דירה ללילה בתל-אביב. ירוק זה בין 0 ל-100 דולר, צהוב זה 100 ל-200, כתום זה 200 ל-300, ואדום זה מעל 300. החציון הוא 87 דולר, אגב.
באופן לא מפתיע, זה בערך תמונת מראה לדירוג המיקום. אבל יש כמה דברים מעניינים מעבר. חדי העין ודאי הבחינו במורסה האדומה ליד מחלף ההלכה, אלה מגדלי יו. ליד הים, כתם אדום נוסף מסמן את דרום הרברט סמואל. לא לגמרי ברור לי מה קורה שם. נראה שמדובר במספר מצומצם של משכירים שעושים את זה כעסק.
אני לא טורח להראות את ירושלים כי זה פחות מעניין. העיר העתיקה זה מקום יקר – שוק.
אשכול דירות לפי תיאור המשכיר
מעבר לפרטים יבשים כמו מחיר ודירוג, אבנ׳ב גם מאפשר לבעלי דירות לתאר את המקום.
חילקתי את איזור תל-אביב להרבה ריבועים שווי גודל. בתוך כל ריבוע, אספתי את תיאורי הדירות וצירפתי אותם יחד ל׳מסמך׳ אחד. כעת, אפשר להשוות את תדירות המילים במסמך מקומי שכזה לתדירות המילים בכל המסמכים. כמובן שבכל המסמכים יש מילים שמופיעות בתדירות גבוהה (וכבר הראתי בעבר שכל דירה בתל-אביב יכולה להיות מתוארת על-ידי המילה ׳ים׳).
בלי להכנס לפרטים הטכנים, אפשר לשקלל מחדש את תדירות המילים באופן שלוקח בחשבון גם את התדירות עצמה, וגם את התדירות היחסית בהשוואה לשאר תתי-האיזורים בתל-אביב (למעוניינים, עשיתי tf-idf).
כלומר, אפשר למצוא מילים בעלות תדירות גבוהה שהן גם ייחודיות לתת-איזור.
החלוקה לתתי-איזורים היא שרירותית, משהו. ברור שיש תתי-איזורים שדי-דומים זה לזה. לכן הרצתי אשכול (קלאסטרינג) על תתי-האיזורים לפי וקטורי המילים ששוקללו מחדש, וחיברתי יחד איזורים שמופיעים באותו אשכול.
הנה תל-אביב. דירות סמוכות באותו צבע נמצאות באותו אשכול. כל איזור מראה את 3 המילים המובילות/בולטות לתיאור תת-האיזור הספציפי.
המילים החשובות ביותר מתבררות כאלה שמתארות את מיקום האיזור. זה לא מפתיע, אבל בכל זאת, נחמד שאפשר לשחזר כך את העיר.
שימו לב שאיזורים דומים בצבעם (למשל כתום ואדום) לאו דווקא דומים סמנטית. האיזורים פשוט שונים מספיק באופן שמצדיק אשכול נפרד.
והנה ירושלים:
מחשבה לעתיד: להריץ ניתוח דומה על כל הערים בישראל, ולהתייחס לכל עיר בתור מסמך. כך אפשר למצוא מילים המתארות עיר שלמה, לא רק תתי-איזורים בתוך העיר.
יפה מאוד, עבודה יפה.
תוכל לחלוק את הקוד (הניתוח יותר מעניין מאסיפת הדאטא, אבל שניהם מעניינים) ?
באיזה אלגוריתם clustering השתמשת?
Thanks. I'm switching to English because combining Hebrew and English leads to iffy formatting in these comments.
For the clusters, I used pretty off-the-shelf tools. I first ran TfidfVectorizer from the sklearn library on the combining documents. I then used a simple Kmeans clustering (also from sklearn). A more interesting thing to try is to infer the right number of clusters and sub-divisions, but I only have so much time.
נחמד. תוכל לחלוק את הקוד? מעניין אותי גם איך חילקת גאוגרפית את האזורים.
I don't maintain an active github for these side-projects, but the details are relatively simple. For data collection:
1. I defined a bounding box around a city. This is somewhat arbitrary so I used this website as my guide: https://www.mapdevelopers.com/geocode_bounding_box.php
2. I cut that bounding box up into 100 regions (10×10) and requested the apartments available within each region from AirBnB, using the urllib2 library and changing the url to take into account the longitude and latitude of a given region. AirBnB returns up to 17 pages of apartments so I looped over those pages and downloaded the information from each apartment in each page.
For the clustering analysis, I basically used the same sub-division (10×10) though I tried playing around with it a bit. Within each region I collapsed the text describing the apartments in that region, so now you have 100 'documents', which you can cluster by their textual similarity. I then plotted the apartments using their predicted cluster membership.
תשמע, זה מרתק. אתה יכול לחלוק את המידע הגולמי?
תודה. לגבי המידע, אני יכול פשוט לשלוח לך אותו אם תרצה? הכתובת הפיקטיבית היא erezshalom0@gmail.com
אהבתי, תודה על ההשקעה!
תודה!
פוסט מצויין, תודה!
שמח לשמוע!
הי…. עבודה מרשימה :-0
אתה יכול לבדוק לפי הביקורות כמה השכרות יש לדירה?
עד כמה שידוע לי, אבנ׳ב לא מספקים מידע על כמה פעמים דירה הושכרה. אני מניח שיש קורלציה עם מספר הביקורות עצמו, אבל אני לא באמת יודע.
הערכה שלי שלקרוב ל-80 מהביקורים יש ביקורת. עדין יש את הבעיה של אורך ביקור ממוצע, כי השכרה של יום תספר כמו השכרה של חודשיים.
השאלה אם זה מבחינתך שווה את המאמץ.
אני מארח ותיק שם (אחת הנקודות הירוקות!) אז אם יש לך שאלות או רצון לשתף פעולה אני אשמח 🙂
כן, זה נשמע לי הערכה סבירה בממוצע, הצרה היא שבלי שונות לא נוכל למדוד את ההשפעה של ביקורות שונות.
זה מזכיר לי שאפשר גם לעשות ניתוח כמה ביקורת היא שלילית או חיובית, רק מהטקסט ובלי קשר לכוכבים, השאלה למה לקשר את זה.
אותי אישית פחות מעניינת ההשפעה של הביקורות ויותר ההיקף של הדירות הפעילות. למשל, החל מ-200$ נראה שלרוב המכריע של הדירות אין יותר מעשר השכרות.
ובכללי, כמה אנשים מסבלטים פה ושם לרגל חופשה וכמה באמת עושים את זה באופן מקצועי.
אגב, תמונה מלאה של השוק אף פעם לא תתקבל כי לא קשה לעקוף את המערכת של airbnb מלכתחילה ובוודאי לחזור/להאריך ללא שימוש בה.
(הגבתי פה כי לא הצלחתי אחרי תגובתך האחרונה)
שאלות מעניינות מאוד, ואין לי די מידע לענות עליהן כרגע. הנה כמה מחשבות:
1. קודם כל אני מסכים שהשיטה שמתוארת בפוסט לא תיתן תמונה מלאה של השוק
2. אני לא יכול לענות בוודאות כמה אנשים מסבלטים פה ושם לעומת באופן מקצועי, אבל נראה שבערך 85 אחוז מהמשכירים משכירים רק דירה אחת. מצד שני,15 אחוז הנותרים אחראים לכמעט חצי מהדירות (43 אחוז בערך).
3. לגבי היקף הדירות הפעילות, לא הורדתי את כמות הביקורות שנכתבו על כל דירה בסקרפינג המקורי של תל-אביב, אולי עוד אחזור לזה. אני מניח שלא מדובר רק בפונקציה יורדת עם המחיר. למשל, בלוס-אנג׳לס היחס בין כמות הביקורות (ומכאן כמות ההשכרות לפי ההנחה שלנו) לבין המחיר מתפלגת בערך נורמלית לפי לוג המחיר.
כלומר, עד בערך מאה דולר, ככל שמבקשים יותר יש גם יותר ביקורות/השכרות, ומעבר ל-100 דולר זה מתחיל לדעוך.
זה נראה כך:
https://imgur.com/JkK0C2T
גרפים מאוד דומים מתקבלים עבור לונדון, ניו-יורק, ואדינבורג (פשוט עם ממוצע אחר במקום 100 דולר). אני מניח שמשהו דומה מאוד מתקיים בישראל גם.
כמובן שזה לא סתם שאנשים שוכרים דירה *בגלל* שמבקשים יותר, אלא שאיזורים נחמדים יותר יכולים לדרוש יותר, ומי רוצה להיות בכלל באיזור שמבקש 10 דולר ללילה.
[…] שירותים ציבוריים (חינוך ורווחה). תמונת הפיזור שיצר הבלוגר נביא שקר מראה כי עיקר הדירות מתרכזות ברובעים הסמוכים לים – 3, 5 […]
מלך! תודה רבה!