เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า

ขั้นตอนแรกเมื่อเริ่มทำงานกับชุดข้อมูลใหม่คือการทำความเข้าใจ ในการทำเช่นนี้ คุณต้องค้นหาช่วงของค่าที่ตัวแปรยอมรับ ประเภทของมัน และค้นหาเกี่ยวกับจำนวนค่าที่หายไปด้วย

ห้องสมุด pandas มีเครื่องมือที่มีประโยชน์มากมายสำหรับดำเนินการวิเคราะห์ข้อมูลเชิงสำรวจ (EDA) แต่ก่อนที่คุณจะใช้งาน คุณจะต้องเริ่มต้นด้วยฟังก์ชันทั่วไป เช่น df.describe() อย่างไรก็ตาม ควรสังเกตว่าความสามารถที่ได้รับจากฟังก์ชันดังกล่าวนั้นมีจำกัด และระยะเริ่มต้นของการทำงานกับชุดข้อมูลใด ๆ เมื่อดำเนินการ EDA มักจะคล้ายกันมาก

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า

ผู้เขียนเนื้อหาที่เราเผยแพร่ในวันนี้กล่าวว่าเขาไม่ชอบการกระทำซ้ำๆ ด้วยเหตุนี้ ในการค้นหาเครื่องมือเพื่อทำการวิเคราะห์ข้อมูลเชิงสำรวจอย่างรวดเร็วและมีประสิทธิภาพ เขาจึงพบห้องสมุด การทำโปรไฟล์แพนด้า. ผลลัพธ์ของงานไม่ได้แสดงอยู่ในรูปแบบของตัวบ่งชี้แต่ละตัว แต่อยู่ในรูปแบบของรายงาน HTML ที่มีรายละเอียดพอสมควรซึ่งมีข้อมูลส่วนใหญ่เกี่ยวกับข้อมูลที่วิเคราะห์ซึ่งคุณอาจต้องทราบก่อนเริ่มทำงานอย่างใกล้ชิดกับมันมากขึ้น

ที่นี่เราจะดูคุณสมบัติของการใช้ไลบรารีโปรไฟล์แพนด้าโดยใช้ชุดข้อมูล Titanic เป็นตัวอย่าง

การวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้แพนด้า

ฉันตัดสินใจทดลองทำโปรไฟล์แพนด้าบนชุดข้อมูล Titanic เนื่องจากมีข้อมูลประเภทต่างๆ ที่มีอยู่และมีค่าที่ขาดหายไป ฉันเชื่อว่าไลบรารีการทำโปรไฟล์ของแพนด้านั้นน่าสนใจอย่างยิ่งในกรณีที่ข้อมูลยังไม่ได้รับการล้างและต้องมีการประมวลผลเพิ่มเติมขึ้นอยู่กับลักษณะของข้อมูล เพื่อที่จะดำเนินการประมวลผลดังกล่าวได้สำเร็จ คุณจำเป็นต้องรู้ว่าจะเริ่มต้นที่ไหนและควรใส่ใจกับสิ่งใด นี่คือจุดที่ความสามารถในการสร้างโปรไฟล์แพนด้ามีประโยชน์

ขั้นแรก เรานำเข้าข้อมูลและใช้แพนด้าเพื่อรับสถิติเชิงพรรณนา:

# импорт необходимых пакетов
import pandas as pd
import pandas_profiling
import numpy as np

# импорт данных
df = pd.read_csv('/Users/lukas/Downloads/titanic/train.csv')

# вычисление показателей описательной статистики
df.describe()

หลังจากรันโค้ดชิ้นนี้แล้ว คุณจะได้สิ่งที่แสดงในรูปต่อไปนี้

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า
สถิติเชิงพรรณนาที่ได้จากเครื่องมือแพนด้ามาตรฐาน

แม้ว่าจะมีข้อมูลที่เป็นประโยชน์มากมายที่นี่ แต่ก็ไม่มีทุกสิ่งที่น่าสนใจที่จะรู้เกี่ยวกับข้อมูลที่กำลังศึกษาอยู่ ตัวอย่างเช่น เราอาจสันนิษฐานว่าในกรอบข้อมูล ในโครงสร้าง DataFrameมี 891 เส้น. หากจำเป็นต้องตรวจสอบ ก็จำเป็นต้องมีโค้ดอีกบรรทัดเพื่อกำหนดขนาดของเฟรม แม้ว่าการคำนวณเหล่านี้จะไม่ต้องใช้ทรัพยากรมากนัก แต่การทำซ้ำตลอดเวลาจะทำให้เสียเวลาซึ่งอาจใช้เวลาทำความสะอาดข้อมูลดีกว่า

การวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้การทำโปรไฟล์แพนด้า

ตอนนี้เรามาทำเช่นเดียวกันโดยใช้การทำโปรไฟล์แพนด้า:

pandas_profiling.ProfileReport(df)

การดำเนินการบรรทัดโค้ดด้านบนจะสร้างรายงานพร้อมตัวบ่งชี้การวิเคราะห์ข้อมูลเชิงสำรวจ โค้ดที่แสดงด้านบนจะแสดงข้อมูลที่พบ แต่คุณสามารถกำหนดให้แสดงเป็นไฟล์ HTML ที่คุณสามารถแสดงให้ผู้อื่นเห็นได้ เป็นต้น

ส่วนแรกของรายงานจะมีส่วนภาพรวม ซึ่งให้ข้อมูลพื้นฐานเกี่ยวกับข้อมูล (จำนวนการสังเกต จำนวนตัวแปร ฯลฯ) นอกจากนี้ ยังประกอบด้วยรายการการแจ้งเตือน เพื่อแจ้งให้นักวิเคราะห์ทราบถึงสิ่งที่ควรให้ความสนใจเป็นพิเศษ การแจ้งเตือนเหล่านี้สามารถให้เบาะแสว่าคุณสามารถมุ่งความสนใจไปที่การล้างข้อมูลของคุณได้ที่จุดใด

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า
ส่วนรายงานภาพรวม

การวิเคราะห์ตัวแปรเชิงสำรวจ

ด้านล่างส่วนภาพรวมของรายงาน คุณจะพบข้อมูลที่เป็นประโยชน์เกี่ยวกับตัวแปรแต่ละตัว เหนือสิ่งอื่นใด ได้แก่ แผนภูมิขนาดเล็กที่อธิบายการกระจายตัวของตัวแปรแต่ละตัว

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า
เกี่ยวกับตัวแปรตัวเลขอายุ

ดังที่คุณเห็นจากตัวอย่างก่อนหน้านี้ การทำโปรไฟล์แพนด้าให้ตัวบ่งชี้ที่มีประโยชน์หลายประการแก่เรา เช่น เปอร์เซ็นต์และจำนวนของค่าที่หายไป ตลอดจนมาตรการทางสถิติเชิงพรรณนาที่เราได้เห็นแล้ว เพราะ Age เป็นตัวแปรตัวเลข การแสดงภาพการกระจายของมันในรูปแบบของฮิสโตแกรมช่วยให้เราสรุปได้ว่าเรามีการกระจายเอียงไปทางขวา

เมื่อพิจารณาตัวแปรเชิงหมวดหมู่ ผลลัพธ์ที่ได้จะแตกต่างเล็กน้อยจากที่พบในตัวแปรตัวเลข

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า
เกี่ยวกับตัวแปรหมวดหมู่เพศ

กล่าวคือ แทนที่จะค้นหาค่าเฉลี่ย ต่ำสุด และสูงสุด ไลบรารีโปรไฟล์แพนด้ากลับพบจำนวนคลาส เพราะ Sex — ตัวแปรไบนารี่ ค่าของมันถูกแสดงด้วยสองคลาส

หากคุณต้องการตรวจสอบโค้ดเหมือนฉัน คุณอาจสนใจว่าไลบรารีโปรไฟล์แพนด้าคำนวณเมตริกเหล่านี้อย่างไร การค้นหาเกี่ยวกับเรื่องนี้ เนื่องจากรหัสห้องสมุดเปิดอยู่และมีอยู่บน GitHub จึงไม่ใช่เรื่องยาก เนื่องจากฉันไม่ใช่แฟนตัวยงของการใช้กล่องดำในโครงการของฉัน ฉันจึงดูซอร์สโค้ดของไลบรารี ตัวอย่างเช่น นี่คือลักษณะกลไกในการประมวลผลตัวแปรตัวเลข ซึ่งแสดงโดยฟังก์ชัน อธิบาย_ตัวเลข_1d:

def describe_numeric_1d(series, **kwargs):
    """Compute summary statistics of a numerical (`TYPE_NUM`) variable (a Series).
    Also create histograms (mini an full) of its distribution.
    Parameters
    ----------
    series : Series
        The variable to describe.
    Returns
    -------
    Series
        The description of the variable as a Series with index being stats keys.
    """
    # Format a number as a percentage. For example 0.25 will be turned to 25%.
    _percentile_format = "{:.0%}"
    stats = dict()
    stats['type'] = base.TYPE_NUM
    stats['mean'] = series.mean()
    stats['std'] = series.std()
    stats['variance'] = series.var()
    stats['min'] = series.min()
    stats['max'] = series.max()
    stats['range'] = stats['max'] - stats['min']
    # To avoid to compute it several times
    _series_no_na = series.dropna()
    for percentile in np.array([0.05, 0.25, 0.5, 0.75, 0.95]):
        # The dropna() is a workaround for https://github.com/pydata/pandas/issues/13098
        stats[_percentile_format.format(percentile)] = _series_no_na.quantile(percentile)
    stats['iqr'] = stats['75%'] - stats['25%']
    stats['kurtosis'] = series.kurt()
    stats['skewness'] = series.skew()
    stats['sum'] = series.sum()
    stats['mad'] = series.mad()
    stats['cv'] = stats['std'] / stats['mean'] if stats['mean'] else np.NaN
    stats['n_zeros'] = (len(series) - np.count_nonzero(series))
    stats['p_zeros'] = stats['n_zeros'] * 1.0 / len(series)
    # Histograms
    stats['histogram'] = histogram(series, **kwargs)
    stats['mini_histogram'] = mini_histogram(series, **kwargs)
    return pd.Series(stats, name=series.name)

แม้ว่าโค้ดชิ้นนี้อาจดูค่อนข้างใหญ่และซับซ้อน แต่จริงๆ แล้วเป็นเรื่องง่ายมากที่จะเข้าใจ ประเด็นก็คือในซอร์สโค้ดของไลบรารีมีฟังก์ชันที่กำหนดประเภทของตัวแปร หากปรากฎว่าไลบรารีพบตัวแปรตัวเลข ฟังก์ชันด้านบนจะค้นหาหน่วยเมตริกที่เรากำลังดูอยู่ ฟังก์ชันนี้ใช้การดำเนินการแพนด้ามาตรฐานสำหรับการทำงานกับวัตถุประเภท Series, ชอบ series.mean(). ผลการคำนวณจะถูกจัดเก็บไว้ในพจนานุกรม stats. ฮิสโตแกรมถูกสร้างขึ้นโดยใช้ฟังก์ชันเวอร์ชันดัดแปลง matplotlib.pyplot.hist. การปรับเปลี่ยนมีวัตถุประสงค์เพื่อให้แน่ใจว่าฟังก์ชันสามารถทำงานกับชุดข้อมูลประเภทต่างๆ ได้

ศึกษาตัวชี้วัดสหสัมพันธ์และข้อมูลตัวอย่าง

หลังจากผลการวิเคราะห์ตัวแปรแล้ว การทำโปรไฟล์แพนด้าในส่วนสหสัมพันธ์ จะแสดงเมทริกซ์สหสัมพันธ์ของเพียร์สันและสเปียร์แมน

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า
เมทริกซ์สหสัมพันธ์แบบเพียร์สัน

หากจำเป็น คุณสามารถตั้งค่าตัวบ่งชี้ของค่าเกณฑ์ที่ใช้ในการคำนวณความสัมพันธ์ได้ในบรรทัดโค้ดที่ทริกเกอร์การสร้างรายงาน ด้วยการทำเช่นนี้ คุณสามารถระบุได้ว่าจุดแข็งของความสัมพันธ์ที่ถือว่ามีความสำคัญสำหรับการวิเคราะห์ของคุณคืออะไร

สุดท้ายนี้ รายงานการทำโปรไฟล์แพนด้าในส่วนตัวอย่าง จะแสดงชิ้นส่วนข้อมูลที่นำมาจากจุดเริ่มต้นของชุดข้อมูลเป็นตัวอย่าง วิธีการนี้อาจนำไปสู่ความประหลาดใจที่ไม่พึงประสงค์ เนื่องจากการสังเกตสองสามครั้งแรกอาจแสดงถึงตัวอย่างที่ไม่ได้สะท้อนถึงคุณลักษณะของชุดข้อมูลทั้งหมด

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า
ส่วนที่มีข้อมูลตัวอย่างที่อยู่ระหว่างการศึกษา

ด้วยเหตุนี้ ฉันไม่แนะนำให้ใส่ใจกับส่วนสุดท้ายนี้ ควรใช้คำสั่งแทนจะดีกว่า df.sample(5)โดยจะสุ่มเลือกข้อสังเกต 5 รายการจากชุดข้อมูล

ผลของการ

โดยสรุป ไลบรารีการทำโปรไฟล์ของแพนด้ามอบความสามารถที่เป็นประโยชน์แก่นักวิเคราะห์ซึ่งจะมีประโยชน์ในกรณีที่คุณต้องการรับแนวคิดคร่าวๆ เกี่ยวกับข้อมูลอย่างรวดเร็ว หรือส่งต่อรายงานการวิเคราะห์ข่าวกรองให้กับบุคคลอื่น ในเวลาเดียวกัน การทำงานจริงกับข้อมูลโดยคำนึงถึงคุณสมบัติของข้อมูลนั้นจะดำเนินการด้วยตนเองโดยไม่ต้องใช้การสร้างโปรไฟล์แพนด้า

หากคุณต้องการดูว่าการวิเคราะห์ข้อมูลอัจฉริยะทั้งหมดในสมุดบันทึก Jupyter เล่มเดียวจะเป็นอย่างไร ลองดูที่ นี้ โครงการของฉันสร้างโดยใช้ nbviewer และใน นี้ คุณสามารถค้นหารหัสที่เกี่ยวข้องได้ในที่เก็บ GitHub

เรียนผู้อ่าน! คุณจะเริ่มวิเคราะห์ชุดข้อมูลใหม่จากที่ใด

เร่งการวิเคราะห์ข้อมูลเชิงสำรวจโดยใช้ไลบรารีการทำโปรไฟล์แพนด้า

ที่มา: will.com

เพิ่มความคิดเห็น