مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

زبان پایتون (Python) در سال ۱۹۹۱ توسط یک برنامه‌نویس هلندی به نام گیدو ون روسوم (Guido van Rossum) ابداع شد و از آن زمان تا کنون رشد قابل ملاحظه‌ای را شاهد بوده است.

اگر چه وی در آن زمان گفته بود: «من به هیچ وجه قصد ندارم زبانی بسازم که به طور گسترده مورد استفاده قرار بگیرد» ولی اکنون و با گذشت نزدیک به سه دهه از آن تاریخ، پایتون تقریباً تمام رقبای خود را کنار زده و به اندازه‌ای محبوبیت یافته که حتی افراد مبتدی نیز کدنویسی را با آن شروع می‌کنند.

در یک سال گذشته، «Python» یکی از کلماتی بود که شهروندان آمریکایی بسیار زیاد در گوگل جستجو کرده‌اند، حتی بیشتر از نام ستاره‌های تلویزیونی.

۳ مطلب با کلمه‌ی کلیدی «NumPy» ثبت شده است

دوره تکمیلی پایتون در واقع پیش نیازی برای دوره پیشرفته پایتون در شاخه های هوش مصنوعی می باشد،در دوره های یادگیری ماشین، پردازش تصویر و داده کاوی با پایتون با یکسری از ماژول ها یا پکیج های پایتون کار خواهیم کرد که جزئیات کامل این ماژول ها در دوره تکمیلی با مثال های گوناگونی که زده می شود بیان خواهد شد. بعد اینکه که کاملا با این ماژول ها آشنا شدید به راحتی میتوانید در دوره پیشرفته پایتون شرکت کنید و خودتون رو برای بازار کار آماده کنید.

در این دوره چهار تا از برترین کتابخانه‌های پایتون [کلیک کنید] در حوزه علم داده آموزش داده می‌شود.

📘 فرمت تمام ویدئوها بصورت mp4 یا wmv می باشد که به راحتی با نرم افزارهای پخش مدیا اجرا خواهند شد.

📘 در صورت بروز هر گونه مشکل در خرید و دانلود با پست الکترونیکی sendticket.py@gmail.com با ما در ارتباط باشید.

📘 سرفصل دوره در بخش زیر قابل مشاهده می‌باشد، بخش‎‌های که به رنگ آبی است بصورت رایگان قابل دانلود می‌باشد.

قیمت: ۴۰,۰۰۰ تومان

کد تخفیف 40 درصدی : winter

لینک ورود به دوره تکمیلی

مترجم : آزاده رضازاده همدانی

ویدئوهای آموزش یادگیری ماشین یا پایتون [کلیک کنید]


پیشنیاز : Scikit-learnو Pandas, matplotlib

(اگر نسخه علمی  از پیش کامپایل شده پایتون مثل ACtivePython را ذز اختیار دارید پس نیازی به نصب کتابخانه­های numpy,Scipy,Scikit-learn,Matplotlib,pandas نیست در غیر این صورت آنها را به صورت جداگانه نصب نمایید)

همچنین علاوه بر نصب کتابخانه­های فوق , کتابخانه quandl  را نیز نصب نمایید. (به qو یا Q هنگام import کتابخانه quandl توجه نمایید!!)

منظور از رگرسیون در یادگیری ماشین چیست؟ هدف در رگرسیون : دریافت داده­های پیوسته, پیداکردن متناسب ترین معادله برای داده­ها , و سپس پیش بینی مقدار جدید برحسب معادله بدست آمده. به طور مثال در رگرسیون خطی تنها باید بهترین معادله خط را مطابق شکل زیر پیدا نمود:

با داشتن معادله خط میتوان داده­های جدیدی که درآینده دریافت می­شوند را تخمین و پیش بینی نمود. به طور مثال فرض کنید در شکل بالا محور افقی نشاندهنده زمان (تاریخ) و محور Y عمودی نشان دهنده قیمت باشد. بنابراین با داشتن معادله خط می­توان قیمتها را در اینده پیش بینی نمود.

یکی از کاربردهای مرسوم رگرسیون پیش بینی ارزش سهام است بدین صورت که بادرنظر گرفتن روندو جریان قیمت در طول زمان , و با داشتن مجموعه داده­های پیوسته, ارزش روند جدید سهام در آینده پیش بینی میشود.

رگرسیون نوعی یادگیری ماشین با ناظر است. در این حالت فرد خبره(محقق) بارها و بارها نمونه­ها و ویژگی­ها را در اختیار ماشین قرار داده سپس برچسب کلاس دسته بندی صحیح هریک, را نیز در اختیار آن قرار می­دهد تا بدین ترتیب ماشین پروسه دسته­بندی را فرابگیرد. پس از آن که ماشین آموزش داده شد, نوبت به مرحله آزمایش (تست) ماشین می­رسد. بدین صورت که نمونه­های دیده نشده ای که برچسب کلاس آن برای فرد خبره معلوم اما برای ماشین نامعلوم و نامشخص است در اختیار ماشین قرار داه می­شود.پاسخهای حاصل از تشخیص ماشین با پاسخ­های اصلی درست مقایسه شده و میزان صحت ماشین اندازه­گیری می­شود.اگر صحت به اندازه کافی بالا باشد محقق میتواند این الگوریتم را بر روی داده­های واقعی اعمال نماید.

از آنجایی که مثال پرکاربرد رگرسیون, پیش بینی ارزش سهام است پس می­توان با مثال زیر شروع کرد:

در ابتدا به داده احتیاج داریم. گاهی اوقات بدست آوردن این داده­ها کار آسانی است اما گاهی باید اطلاعات مدنظر خود را از بین داده­های موجود بیرون کشید مشابه کاری که در این مثال انجام شده است:  

در اینجا از اطلاعات ساده موجود پیرامون ارزش و تعداد سهام در کتابخانه Quandle استفاده خواهیم کرد که قبلا توسط google جمع آوری شده است.

در متن بالا Q در کلمهQuandle  باید با حروف کوچک نوشته شود.

در حال حاضر این اطلاعات در اختیار ماست: همانطور که مشاهده می­کنید حجم آنها برای شروع کمی زیاد است.

همانطور که قبلا در مقدمه هم توضیح داده شد, در یادگیری ماشین بخشی وجود دارد که هدف آن کاهش میزان داده­های ورودی است. در این مثال خاص چند ستون داریم که بسیاری ازآنها زاید و تکراری بوده و تنها یک زوج از آنها ثابت بوده و تغییر نمیکند. احتمالا همه با این موضوع موافقیم که داشتن همزمان داده های Regular و داده­های Adjusted امر مطلوبی نیست. ستون­­های Adjasted مطلوبترین اطلاعات را در اختیار ما قرار می­دهند در حالی که ستونهای regular حاوی اطلاعات روزانه بوده که شاید خیلی مفید نباشند. مثلا سهام دارای بخشی به نام stock splits(تقسیم سهام) میباشد که ممکن است یک سهم به 2 سهم تقسیم شود و ارزش سهام نصف شده در حالی که ارزش آن شرکت نصف نشود. ستون­های adjusted به مرور و در گذر زمان برای stock splits تنظیم می­شوند از اینرو به منظور تحلیل داده­ها بسیار قابل اعتمادتر هستند. حالا بهتر است کمی پیش برویم و نمونه کوچکی از داده ها را دقیق تر بررسی کنیم:

دراینجا فقط ستون­های adjusted و همچنین ستون volume (تعداد سهام )راداریم. لازم است پیرامون نکاتی مهم بحث شود:

·         آیا این که افراد تصور میکنند که یادگیری ماشین قادر به خلق اطلاعات از هیچ است صحیح می­باشد؟ خیر در واقع باید اطلاعاتی حتما موجود باشد تا یادگیری ماشین بتواند آن را برجسته و مشخص نماید.

·         شما به داده های با معنی احتیاج دارید. حال چگونه متوجه خواهید شد که این داده­ها با معنی هستند یا خیر؟ بهترین پاسخ برای این سوال این است که از فکر و مغز خود استفاده کنید و در مورد آن فکر کنید.

·         آیا قیمت­های گدشته نشان­دهنده قیمتهای آینده هستند؟ بعضی از افراد اینگونه فکر میکنند اما در گذر زمان  ثابت شده است که این تصور اشتباه است.

·         الگو­های گذشته چطور؟ آیا در پیش­بینی آینده موثر هستند؟ این نظریه تا حدودی می­تواند خوب باشد اما در کل هنوز ضعیف است.

·         در راستای بررسی الگوهای گدشته, آیا بررسی روابط بین تغییرات ارزش سهام و تعداد سهام (volume) در طول زمان به پیش­بینی ارزش سهام در آینده کمک خواهد کرد؟بله این دیدگاه تا حدودی نسبت به نظرات قبلی بهتر شده است.

پس همانطور که می­بینید داشتن داده بیشتر به منزله بهتر بودن داده نیست و هدف در یادگیری ماشین کسب مفیدترین داده­ها می­باشد. بدین منظور گاهی نیازاست تاتغییراتی بر روی اطلاعات خام اولیه صورت پذیرد.

میزان نوسانات روزانه مثلا کمترین تغییرات رادر نطر بگیرید. به نظر شما بهتر است داده ها به سادگی مطرح شده (Open, High, Low, Close)و یا به صورت نوسانات و درصد تغییرات( Close, Spread/Volatility, %change )؟ تصور من این است درصد تغییرات اطلاعات مفیدتری را به ما می­دهد.

بنابراین همانگونه که تاکنون مشاهده کردید همه داده­های موجود اطلاعات مفیذی را در اختیار شما قرار نمیدهند, بلکه باید قبل از در اختیار گذاشتن داده ها به صورت ورودی الگوریتم یادگیری ماشین, تغییراتی را بر روی آنها انجام دهید.

در این بخش مقدار (high-low)/low*100 محاسبه می­شودکه نشان­دهنده درصد انتشار بر اساس ارزش close  بوده و میزان نوسانات را اندازه­گیری می­کند:

در انتها درصد تغییرات روزانه محاسبه می­شود:

و چهار ستون زیر نمایش داده می­شود:

 


NumPy سرنامی برای  Numerical Python است. قدرتمندترین ویژگی این کتابخانه، آرایه‌های n-بُعدی هستند. این کتابخانه همچنین شامل توابع پایه‌ای جبر خطی، تبدیل فوریه، تولید پیشرفته اعداد تصادفی و ابزارهایی جهت یکپارچه‌سازی با دیگر زبان‌های سطح پایین مانند C++ ، C و فورترن (Fortran) است.

SciPy سرنامی برای Scientific Python است. SciPy براساس NumPy ساخته شده و یکی از پرکاربردترین کتابخانه‌ها برای انواع گسترده‌ای از ماژول‌های سطح بالای علمی و مهندسی مانند تبدیل فوریه گسسته (discrete Fourier transform)، جبر خطی، بهینه‌سازی و «ماتریس‌های خلوت یا اسپارس» (Sparse Matrix) محسوب می‌شود.

Matplotlib برای ترسیم انواع گسترده‌ای از نمودارها، از هیستوگرام و نمودارهای خطی گرفته تا نمودارهای حرارتی قابل استفاده است. می‌توان از ویژگی Pylab در ipython notebook (به صورت ipython notebook –pylab = inline) به منظور بهره‌گیری از ویژگی‌ رسم نمودار به صورت خطی استفاده کرد. اگر ویژگی inline توسط کاربر نادیده گرفته شود، pylab محیط ipython را به محیطی بسیار شبیه به «متلب» (Matlab) مبدل می‌کند.

Pandas برای عملیات روی داده‌های ساختار یافته و دستکاری آن‌ها مورد استفاده قرار می‌گیرد. این کتابخانه به طور گسترده‌ای برای «data munging» (این عبارت یک تعریف استاندارد برای انجام تغییرات غیر قابل بازگشت در داده‌ها است. به نظر می‌رسد عبارت mung سرنام برگرفته شده از Mash Until No Good باشد. در واقع، عبارت data munging اغلب به فرآیند دریافت داده‌های خام و تبدیل و نگاشت آن‌ها به دیگر فرمت‌ها به منظور آماده‌سازی مجموعه داده جهت انجام تحلیل‌های تخصصی، اشاره دارد و از آماده‌سازی داده‌ها به عنوان مقدمه‌ای جهت تحلیل‌ها استفاده می‌شود. Pandas در سال‌های اخیر به پایتون اضافه و منجر به افزایش استفاده از آن در جامعه دانشمندان داده شده است.

Scikit Learn کتابخانه‌ای برای یادگیری ماشین است. این کتابخانه بر اساس SciPy، NumPy و matplotlib ساخته شده و شامل ابزارهای کارآمدی برای یادگیری ماشین و مدل‌سازی آماری شامل «دسته‌بندی» (classification)، «رگرسیون» (regression)، «خوشه‌بندی» (clustering) و «کاهش ابعاد» (dimensionality reduction) است.

Statsmodels برای مدل‌سازی آماری مورد استفاده قرار می‌گیرد. این کتابخانه یک ماژول از پایتون است که به کاربران امکان اکتشاف در داده‌ها، تخمین مدل‌های آماری و انجام آزمون‌های آماری را می‌دهد. Statsmodels یک لیست گسترده از «آمار توصیفی» (descriptive statistics)، «آزمون‌های آماری» (statistical tests)، توابع ترسیم نمودار و نتایج آماری برای انواع گوناگونی از داده‌ها و برآوردگرها است.

Seaborn یک کتابخانه پایتون برای بصری‌سازی آماری داده‌ها است. این کتابخانه برای ساخت گرافیک‌های آماری اطلاعاتی و جذاب در پایتون قابل استفاده و برمبنای matplotlib ساخته شده. هدف Seaborn آن است که بصری‌سازی را به بخش مرکزی اکتشاف و ادراک داده‌ها مبدل کند.

Bokeh برای ساخت نمودارهای تعاملی، دشبوردها و برنامه‌های داده در مرورگرهای مدرن مورد استفاده قرار می‌گیرد. این کتابخانه کاربر را قادر به تولید گرافیک‌های ظریف و مختصری به سبک D3.js می‌سازد. علاوه بر آنچه گفته شد، این کتابخانه توانایی تعامل با کارایی بالا در مجموعه داده‌های بسیار بزرگ یا جریانی را دارا است.

Blaze به منظور گسترش توانایی‌های Numpy و Pandas برای مجموعه داده‌های توزیع شده و جریانی، مورد استفاده قرار می‌گیرد. این کتابخانه قابل استفاده به منظور دسترسی داشتن به داده‌ها از طریق گروه کثیری از منایع شامل Bcolz ،MongoDB ،SQLAlchemy ،Apache Spark ،PyTables و دیگر موارد است. Blaze در کنار کتابخانه Bokeh می‌تواند به عنوان یک ابزار بسیار قدرتمند جهت ساخت آثاری بصری (گرافیک‌ها و نمودارها) و دشبوردهای موثر برای مجموعه‌های عظیم داده مورد استفاده قرار بگیرد.

Scrapy کتابخانه‌ای برای «خزیدن در وب» (web crawling) است. این کتابخانه برای کشف الگوهای خاص در داده‌ها بسیار مفید به حساب می‌آید. Scrapy توانایی آغاز به کار کردن در URL خانگی وب‌سایت و کاوش کردن در صفحه وب برای گردآوری اطلاعات را دارد.

SymPy برای «محاسبات نمادین» (Symbolic Computation) مورد استفاده قرار می‌گیرد و دارای طیف وسیعی از توانایی‌ها از ریاضیات نمادین پایه گرفته تا حساب، جبر، ریاضیات گسسته و فیزیک کوانتوم است. دیگر ویژگی کارآمد این کتابخانه، توانایی قالب‌بندی نتایج محاسبات به صورت کد «لاتک» (LaTeX) است.

Requests برای دسترسی به وب است. این کتابخانه به صورت مشابه با کتابخانه پایتون استاندارد urllib2 مورد استفاده قرار می‌گیرد، اما کد زدن با استفاد از Requests ساده‌تر است. امکان دارد کاربران با تجربه تفاوت‌های ظریفی بین این دو کتابخانه پیدا کنند، اما Requests برای افراد مبتدی راحت‌تر است.