سود:
- امکان ایجاد یک گردش کار تجزیه و تحلیل تکرارپذیر که داده های تله متری، آزمایش و تولید را با پانداها بارگیری و پاکسازی می کند.
- توانایی درک و تأیید خط به خط خروجی در حین دریافت کد، ویژگی ها و کمک تصویرسازی از هوش مصنوعی
- توانایی ممیزی نتایج تجزیه و تحلیل برای ثبات واحد، نشت داده ها و تکرارپذیری
در واحدهای قبلی مانند «مشاور» از هوش مصنوعی استفاده می کردیم. در این بخش، ما یک قدم جلوتر رفته و یک گردش کار ایجاد می کنیم که داده های خودرو را با دست خودمان، با استفاده از پایتون تجزیه و تحلیل می کند. هدف این نیست که شما را به یک توسعه دهنده نرم افزار تبدیل کنیم. ساختن مهندسي است كه بتواند خط به خط آن كد را بفهمد و آن را تاييد كند و در عين حال كمك كد را از هوش مصنوعي بگيرد. از آنجا که کد تولید شده توسط AI می تواند معیوب باشد، درست مانند متن تولید شده توسط AI. ممکن است حجم، نشت داده ها، ستون اشتباه در مرکز را اشتباه بگیرد. اجرای کد بدون درک آن مانند انتشار یک گزارش بدون امضا است.
پایتون چرا؟ از آنجا که این استاندارد عملی در تجزیه و تحلیل داده ها است: شما به راحتی می توانید داده های تله متری، آزمایش و تولید را با کتابخانه های پاندا (داده های جدولی)، numpy (پردازش عددی)، matplotlib (نقشه) و scikit-learn (یادگیری ماشین) پردازش کنید.
شش مرحله برای تجزیه و تحلیل تکرارپذیر
یک تحلیل محکم همیشه از چارچوب یکسانی پیروی می کند:
- بارگذاری: داده ها را از فایل بخوانید.
- بازرسی: ابعاد، ستون ها، انواع داده ها، مقادیر از دست رفته.
- پاک: گم شده/فرت، واحد، تصحیح مُهر زمانی.
- ویژگی استخراج: متغیرهای معنادار را استخراج کنید.
- تحلیل/مدل: آمار، تجسم یا مدل.
- بررسی و گزارش: ارائه نتیجه، بررسی حجم/نشت، ضبط.
نکته: وقتی از هوش مصنوعی کد میخواهید، بگویید «در هر مرحله چه کاری انجام میدهید، نظر بدهید و فرضیات خود را بنویسید». بنابراین می توانید هنگام خواندن کد آن را تأیید کنید.
مثال گام به گام: تجزیه و تحلیل تله متری
کد زیر یک رکورد CAN/telemetry را بارگیری می کند و بررسی اولیه را انجام می دهد. (توجه: قبل از اجرای کدها مطمئن شوید که آنها را درک کرده اید؛ نام ستون ها بسته به داده های شما متفاوت است.)
وارد کردن پانداها به صورت pd# 1) بارگذاری: CSV نیمه نقطهدار، ستون اول timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # چند سطر، چند ستون چاپ (df.dtypes هر ستون) text)print(df.isna().sum()) # تعداد مقادیر از دست رفته در هر ستون چاپ(df.describe()) # آمار خلاصه: حداقل، حداکثر، میانگین
خروجی describe() اولین فرصت شما برای تأیید است: اگر مقدار حداکثر دور موتور 45000 دور در دقیقه باشد (موتور مسافری معمولی ~7000 دور در دقیقه)، نقص واحد یا سنسور وجود دارد.
پرکاربردترین دستورات پانداها در مرحله ممیزی و کارهایی که انجام می دهند:
فرمان
چه می کند
چه چیزی را تایید می کند؟
df.shape
تعداد سطر/ستون
آیا اندازه مورد انتظار است؟
df.dtypes
انواع ستون
آیا ستون شماره تبدیل به متن شده است؟
df.isna().sum()
تعداد مقادیر از دست رفته
چقدر فضا وجود دارد؟
df.describe()
حداقل/حداکثر/میانگین
آیا از نظر فیزیکی منطقی است؟
df.duplicated().sum()
ردیف تکراری
آیا ثبت نام دوگانه وجود دارد؟
# 3) Clear: مقادیر فیزیکی غیرممکن را علامت گذاری کنید
احتیاط: فوراً علامت پرت را حذف نکنید. ابتدا درک کنید که چرا یک امر دور از ذهن است. آیا این یک رویداد واقعی (گرمایش ناگهانی) یا خرابی سنسور است؟ حذف کورکورانه ممکن است خطای واقعی را پنهان کند.
# 4) ویژگی استخراج: نرخ افزایش دما (مشتق)df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()Visualimplot# 5) pltplt.plot(df["زمان"]، df["motor_sic"])plt.xlabel("زمان"); plt.ylabel("دمای موتور (C)")plt.title("درس دمای موتور")plt.show()
جلوگیری از نشت اطلاعات در پایتون
خطرناک ترین اشتباه هنگام ساخت یک مدل پیش بینی نشت داده است (واحد 5): زمانی که مدل اطلاعاتی را می بیند که در زمان پیش بینی نمی توان آنها را شناخت. قانون طلایی برای جلوگیری از این امر در سری های زمانی: آموزش با گذشته، آزمایش با آینده - بدون در هم ریختن تصادفی.
from sklearn.model_selection import train_test_split# FALSE: تقسیم تصادفی سری زمانی آینده را فاش می کند# df[df["time"] > آستانه] # آخرین 20% آینده
احتیاط: train_test_split داده ها را به طور پیش فرض به هم می ریزد (shuffle=True). در سری های زمانی، این آینده را با آموزش اشتباه می گیرد و نمره بالایی کاذب ایجاد می کند. اگر هوش مصنوعی این کار را در کدی که تولید می کند انجام داده است، حتما آن را برطرف کنید.
ثبات واحد: قاتل خاموش
موذی ترین خطاها در خودرو خطاهای واحد هستند: کیلومتر در ساعت به متر بر ثانیه، نیوتن متر به پوند فوت، نوار به کیلو پاسکال، درجه سانتی گراد تا K. داشتن فرهنگ لغت واحد هر ستون در تجزیه و تحلیل و نوشتن تبدیل ها به وضوح جان انسان ها را نجات می دهد.
# واحدها را به صراحت مستند کنید = {"speed": "km/h"، "motor_sic": "C"، "pressure": "bar"}# تبدیل صریح در صورت لزوم (km/h -> m/s)df["speed_ms"] = df["speed"] / 3.6
مطالعات موردی کوچک
مورد 1 - خطا با describe(). یک تحلیلگر کد را از هوش مصنوعی اجرا می کند و یک تخمین محدوده انجام می دهد. نتیجه به طرز عجیبی بالاست. وقتی به خروجی describe() نگاه می کنیم، می بینیم که ظرفیت باتری در برخی خطوط بر حسب وات ساعت و در برخی دیگر به کیلووات ساعت وارد می شود (1000 برابر اختلاف). هنگامی که دستگاه به یک نوع یکنواخت می رسد، نتیجه بهبود می یابد. نتیجه گیری: یک آمار خلاصه ساده از پیش بینی بد جلوگیری کرد.
مورد 2 - تله سردرگمی. مدل سایش ترمز کارآموز در مجموعه آزمایشی 98 درصد دقیق بود. هنگامی که کد بررسی می شود، می توان مشاهده کرد که train_test_split(shuffle=True) و سری های زمانی مخلوط شده اند، به این معنی که نقاط آینده به آموزش نشت می کنند. با تقسیم بر زمان، دقت به 80% کاهش می یابد، اما اکنون واقع بینانه است. نتیجه گیری: فقط به این دلیل که کد هوش مصنوعی کار می کرد، درست نبود. انسان نشت را گرفت.
مورد 3 - درک موارد پرت. در یک رکورد دوام، کد هوش مصنوعی به طور خودکار مقادیر کرنش پرت را حذف می کند. مهندس به نقاط حذف شده نگاه می کند. این دقیقاً همان لحظات شروع کرک بود که آزمایش به آن علاقه داشت. حذف حذف شده و تخلفات به بررسی جداگانه داده میشوند. نتیجه: در قسمت "Cleaning" سیگنال واقعی را می توان حذف کرد. در هر مرحله سوال کنید
قالب های سریع
قالب 1 - کد درخواستی (با توضیح):
نقش: شما یک مربی تحلیلگر داده پایتون هستید. وظیفه: کدی بنویسید که یک CSV تله متری را بارگیری و بررسی می کند. زمینه: ستون ها: زمان، سرعت (km/h)، engine_sic (C)، انقلاب (rpm). محدودیت: هر ردیف را توضیح دهید. توضیح دهید که کدام چک و چرا انجام شده است. بررسی ارزش فیزیکی غیرممکن را اضافه کنید. بدون صدا چیزی را حذف نمی کند. خروجی: کد نظر + کدام خروجی را باید نگاه کنم و چرا.
الگو 2 - بازرسی نشتی:
نقش: شما یک مرورگر کد یادگیری ماشین هستید. وظیفه: کد تقسیم آموزش/آزمایش زیر را برای نشت داده ها بررسی کنید. زمینه: این یک سری زمانی (دورسنجی وسیله نقلیه) است. محدودیت: در صورت بروز تصادفی، هشدار دهید. تقسیم بر اساس زمان را پیشنهاد و توجیه کنید. خروجی: یافته ها + کد تصحیح شده + توضیح.
الگو 3 - اعتبار سنجی واحد:
نقش: شما یک حسابرس کیفیت داده هستید. وظیفه: بررسی هایی را پیشنهاد کنید که به دنبال ناسازگاری واحد در یک DataFrame باشند. زمینه: ظرفیت ممکن است در برخی ردیف ها کیلووات ساعت و در برخی دیگر Wh باشد. خروجی: بررسی کد + نحوه یافتن الگوی مشکوک.
قالب 4 - تجسم + نظر:
نقش: شما یک متخصص تجسم داده ها هستید. وظیفه: کدی بنویسید که سیر دمای موتور و میزان افزایش آن را ترسیم کند. محدودیت: محورها را با واحد برچسب گذاری کنید. علامت بصری ناهنجاری؛ هنگام تفسیر نمودار ادعای خطای قطعی نکنید. خروجی: کد + آنچه در نمودار باید جستجو شود.
اعلان ضعیف / اعلان قوی
اعلان ضعیف:
با این داده ها یک مدل بسازید.
مشخص نیست کدام هدف، کدام بخش، کدام راستی آزمایی. هوش مصنوعی می تواند کدهای درهم، نشتی و واحد کور را خروجی دهد.
اعلان قدرتمند:
نقش: شما یک مربی پایتون ML هستید. وظیفه: یک گردش کار اولیه برای پیش بینی سایش لنت ترمز و نشان دادن مشکلات اعتبار سنجی بنویسید. زمینه: تله متری سری زمانی. هدف: ضخامت پد باقیمانده. محدودیت: تقسیم سری های زمانی بر اساس زمان (بدون درهم ریختن). مشخصه های پرچم در معرض خطر نشت داده ها؛ واحدهای سند؛ هر مرحله را تفسیر کنید. قبل از اینکه نتیجه به میدان برود چه بررسی هایی لازم است را بنویسید. خروجی: کد نظر + چک لیست تأیید.
اشتباهات رایج
- اجرای کد بدون درک آن. کد هوش مصنوعی نیز ممکن است معیوب باشد. خط به خط بخوانید.
- اختلاط سری های زمانی shuffle=True آینده را لو می دهد و یک نمره جعلی ایجاد می کند.
- کورکورانه قسمت پرت را حذف کنید. سیگنال واقعی (شروع خطا) را می توان پاک کرد.
- عدم مستندسازی واحد خطاهایی مانند km/h در مقابل m/s، Wh در مقابل kWh بیصدا رشد میکنند.
- رد شدن از مرحله describe()/check. بیشتر خطاها در اولین آمار خلاصه ظاهر می شوند.
به طور خلاصه
- پایتون (پانداها، نومپی، matplotlib، scikit-learn) استاندارد واقعی تجزیه و تحلیل داده های خودرو است.
- تجزیه و تحلیل قابل تکرار: بارگیری، بازرسی، تمیز کردن، ویژگی، تجزیه و تحلیل، اعتبارسنجی و گزارش.
- درک و تأیید کدی که هوش مصنوعی خط به خط تولید می کند ضروری است. فقط به این دلیل که کار می کند به این معنی نیست که درست است.
- حفظ تمایز گذشته/آینده در سری های زمانی؛ به هم زدن تصادفی باعث نشت داده می شود.
- سازگاری واحد و تفسیر پرت، نکاتی خاموش اما حیاتی برای تأیید هستند.
وظیفه کاربردی
یک مجموعه داده کوچک (تله متری واقعی یا مصنوعی) بگیرید. (1) با پیروی از چارچوب شش مرحله ای، کد بارگیری و کنترل را با الگوی 1 ایجاد کنید و تأیید کنید که هر خط را درک می کنید. (2) حداقل یک مقدار مشکوک را در خروجی describe() بیابید و علت آن را بررسی کنید. (3) در یک کار پیش بینی، تقسیم آموزش/آزمون را زمان بندی کنید و خطر نشت را با الگوی 2 بررسی کنید. (4) واحد هر ستونی را که استفاده می کنید در یک فرهنگ لغت مستند کنید.
چک لیست
- [ ] من تجزیه و تحلیل را با یک چارچوب شش مرحله ای تنظیم کردم.
- [ ] من کد تولید شده توسط هوش مصنوعی را خط به خط خواندم و فهمیدم.
- [ ] من به دنبال مقادیر مشکوک با describe()/audit بودم.
- [ ] من سری های زمانی را بر اساس زمان تقسیم کردم (بدون درهم ریختن).
- [ ] من ویژگی هایی را که در معرض خطر نشت داده هستند علامت گذاری کردم.
- [ ] واحد هر ستون را مستند کردم و تبدیل ها را به صراحت نوشتم.