מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים - KDnuggets

מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים - KDnuggets

צומת המקור: 3093078

מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים
תמונה מאת המחבר
 

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

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

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

"השתמש בנתונים המצורפים כדי לבצע ניתוח סטטיסטי תיאורי. כלול את הבאים:

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

זה מחזיר את הסיכום שנראה כך. זה עושה את אותו חישוב עבור כל משתנה.

גיל:

  • ממוצע: 28.79 שנים
  • סטיית תקן: 6.94 שנים
  • טווח: 18 עד 50 שנים

זה גם לא זיהה ערכים חסרים במערך הנתונים.

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

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

aerofit_data = pd.read_csv(file_path)

לסטטיסטיקה בסיסית, זה נותן את זה.

basic_stats = aerofit_data.describe()

ואתה יכול לבדוק את הערכים החסרים עם הקוד הזה.

missing_values = aerofit_data.isnull().sum()

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

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

 

מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים
נוצר על ידי מחבר/ChatGPT
 
מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים
נוצר על ידי מחבר/ChatGPT
 

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

 

מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים
נוצר על ידי מחבר/ChatGPT
 
מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים
נוצר על ידי מחבר/ChatGPT
 

אותה פרשנות חלה על התפלגות המיילים: מוטה ימינה וחריגים בקצה הגבוה יותר.

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

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

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

הוא השיב שהנתונים שלי מתאימים בעיקר לניתוח תיאורי והסקתי של נתונים רציפים.

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

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

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

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

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

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

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

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

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

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

אז, קוד ה-SQL הוא זה.

SELECT 
  company, 
  profit 
FROM 
  (
    SELECT 
      *, 
      rank() OVER (
        ORDER BY 
          profit DESC
      ) as rank 
    FROM 
      (
        SELECT 
          company, 
          sum(profits) AS profit 
        FROM 
          forbes_global_2010_2014 
        GROUP BY 
          company
      ) sq
  ) sq2 
WHERE 
  rank = 3;

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

import pandas as pd

# Assuming 'forbes_global_2010_2014' is a pandas DataFrame with columns 'company' and 'profits'
# Since we don't have the actual data, this code assumes that the DataFrame is already loaded

# Step 1: Group by company and sum the profits
company_profits_sum = forbes_global_2010_2014.groupby('company')['profits'].sum().reset_index()

# Step 2: Rank the companies by profit in descending order
company_profits_sum['rank'] = company_profits_sum['profits'].rank(ascending=False, method='max')

# Step 3: Filter the top 3 companies
top_companies = company_profits_sum[company_profits_sum['rank'] = 3]

# Final selection of columns
result = top_companies[['company', 'profits']].sort_values('profits', ascending=False)

result  # This will display the top 3 companies by profit

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

כשאני אומר רע, אני מתכוון ממש רע! זה מגיע לרמה שבה הוא משתמש בנוסחה הנכונה ומחבר את הערכים הנכונים אבל איכשהו מצליח לבלבל חישובים לא כל כך מסובכים.

תסתכל על זה. ביקשתי ממנו לפתור את הבעיה הזו: "נניח שאתה מטיל קובייה הוגנת בשש צדדים 10 פעמים. מה ההסתברות לגלגל שתי 1, שלוש 2, אחת 3, אפס 4, שלוש 5, ו-6 אחת?"

זה מחשב את ההסתברות כך.

 

מה שלמדתי מהשימוש ב-ChatGPT למדעי הנתונים
 

זה מבלגן בעת ​​חישוב פקטוריאלים. וזה עושה את זה בסטייל! שגוי לחלוטין לומר 2! = 12. זה לא, זה 2. איך אתה יכול לקלקל חישוב פשוט כמו 2×1 = 2? זה ממש מצחיק!

אפילו יותר מצחיק זה פעם, 3! = 36, ובפעם השנייה 3! = 6. קרדיט לזה, כי זה היה נכון פעם אחת לפחות.

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

ביקשתי ממנו שוב לתקן את החישוב, ולבסוף הוא החזיר את התוצאה הנכונה: 0.0008336. הפעם השלישית היא קסם!

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

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

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

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

בול זמן:

עוד מ KDnuggets