<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات نشریه انجمن هوش مصنوعی دانشگاه اصفهان</title>
        <link>https://virgool.io/pubUIAI/feed</link>
        <description>نشریه الکترونیکی انجمن هوش مصنوعی دانشگاه اصفهان 
محلی برای بازنشر محتوای شما با محوریت هوش مصنوعی</description>
        <language>fa</language>
        <pubDate>2026-06-17 08:29:24</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/qbumvcvzx2md/xxcqdq.jpeg</url>
            <title>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</title>
            <link>https://virgool.io/pubUIAI</link>
        </image>

                    <item>
                <title>هوشِ بازی‌‌ها</title>
                <link>https://virgool.io/pubUIAI/%D9%87%D9%88%D8%B4%D9%90-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%87%D8%A7-cmqnrmv4bd9f</link>
                <description>این عبارت شاید به گوش شما خورده‌‌باشد اما این تازه شروع یک فرایند پر‌‌فراز‌‌ونشیب برای سازندگان بازی‌‌ها است، چرا‌‌که اولین استفاده ازهوش‌‌مصنوعی دربازی، به کمتراز80 سال پیش یعنی به سال 1952 در بازی دوز برمی‌‌گردد. بازی‌‌ها روز‌‌به‌‌روز به لطف هوش مصنوعی واقع گرایانه تر،قابل درک‌‌تر و شبیه به زندگی روزمره ما می‌‌شوند گویا خودمان دریک محیط فیزیکی در‌‌حال مبارزه و یا بازی هستیم و روشن است در سال‌‌‌های پیش‌‌رو بازی‌‌هایی که از هوش‌‌مصنوعی خوبی‌‌برخوردار نیستند به راحتی کنار‌‌خواهند رفت. بسیاری از قابلیت‌‌های بازی‌‌ها به لطف هوش‌‌مصنوعی ایجاد شده‌‌اند که از آن‌‌ها می‌‌توان به شبیه‌‌سازی حرکات شخصیت‌‌ها به حرکات واقعی اشاره‌‌کرد. در ادامه به بررسی مختصر 5 بازی و هوش‌‌مصنوعی آن‌‌‌ها می‌‌پردازیم:1. آخرین بازمانده از ما (THE LAST OF US)شاید نام سریالی با همین عنوان به گوش شما خورده‌‌باشد و یا حتی منتظر پخش آن در سال 2023 باشید، نکته جالبی که باید بدانید این است که این سریال، اقتباسی از یک بازی به همین نام است. آخرین بازمانده از ما، روایتگر یک بازی پساآخرالزمانی بعد از همه‌‌گیری یک بیماری قارچی است. بیماری ای که با تاثیر بر روی مغز افراد، آن‌‌ها را به جنون و در نهایت تبدیل‌‌‌شدن به زامبی می‌‌کشاند. خط داستانی بازی، مربوط به دو فرد است که در جست‌‌و‌‌جوی درمانبیماری هستند و ژانری ماجراجویانه، ترسناک و مخفیانه دارد. دشمنان هریک اسم و فرهنگ متعلق به گروه خود را دارند. دراین‌‌بازی ارتباط بین دشمنان بسیار خوب است به‌‌طوری که وقتی یکی‌‌از آن‌‌ها را می‌‌‌کشید بعد از گذشت چند ثانیه آن‌‌را فراموش نمی‌‌کنند بلکه در مورد آن صحبت می‌‌کنند تا شما را پیدا کنند و انتقام بگیرند. اگر چراغ‌‌قوه را به‌‌سوی چشمان یکی از آن‌‌ها بگیرید با باز و بسته شدن چشمان آن‌‌ها واقع‌‌گرایانه بودن بازی به شما اثبات می‌‌شود که همه‌‌‌این‌‌ها به لطف هوش‌‌مصنوعی بازی است .همچنین هوش‌‌مصنوعی آن از یکسان بودن بازی در مراحل مختلف جلوگیری می‌‌کند به‌‌طوری که باید در هر مرحله، از روش‌‌ها و تجهیزات جدید استفاده کنید و بازی عاری از هرگونه الگو و روشی برای مبارزه است .که فضای بازی را جذاب کرده‌‌است. آن‌‌ها همیشه در واقعی‌‌ترین و قابل باورترین حالت ممکن با شما مبارزه می‌‌کنند. THE LAST OF US صحنه هایی از بازی2. جنگل (THE FOREST)داستان این بازی با یک آدم ربایی آغاز می‌‌شود، آدم ربایی ای که درست پس از سقوط هواپیمای یک پدر و پسر رخ می‌‌دهد و پسر دزدیده‌‌می‌‌شود . بازی پر از سرنخ‌ها و اطلاعات پیچیده‌‌ای است که شما را به یک کاراگاهواقعی برای پیدا کردن پسر تبدیل می‌‌کند. هوش‌‌مصنوعی آن به‌‌طوری طراحی شده‌‌است که اگر شما درمکان مناسبی پشت درخت‌‌ها پنهان شوید و مانع حرکت دشمنان نشوید ، شما را نمی‌‌کشند اما به‌‌خوبی شما را بررسی می‌‌کنند و با کوچک‌‌ترین اشتباهی شما را خواهند کشت، آن‌ها از تمام توانایی خود برای از بین بردن شما استفاده می‌‌کنند به‌‌‌طوری که در تیم‌‌های مختلف تقسیم شده و شلیک می‌‌کنند. شاید ایده‌‌ی بازی کمی کلیشه‌‌ای باشد اما فراز‌‌‌‌و‌‌نشیب‌‌های بازی و سرنخ‌‌های آن سطحی نیستند و فضای خوبی را برای شما به‌‌وجود خواهند آورد.صحنه هایی از بازی THE FOREST3. ترس 2 (FEAR 2)نام کامل این بازی First Encounter Assault Recon  است و توسط گروه Monolith طراحی و ساخته شده‌‌است.  شاید در بسیاری از بازی‌‌ها دیده‌‌باشید که با پیشرفت مراحل، دشمنان هم قوی‌‌تر و تکنیکی تر‌‌ می‌‌شوند درست مانند این بازی، طراحی این بازی به‌‌گونه‌‌ای است که با گذر از هر مرحله ، هوش‌‌مصنوعی دشمنان، استراتژی‌‌ها و تکنیک‌‌ها تغیر کرده و شما باید از روش‌‌های جدید برای پیروزی استفاده کنید. با انجام هر نوع حرکت و رفتاری در بازی، هوش‌‌مصنوعی بازی در ابتدا یاد می‌‌گیرد و سپس خود را با نحوه بازی شما تطابق می‌‌دهد. دشمنان شما در این بازی، درست مانند خودتان رفتار می‌‌کنند و تا حد توان از کشته‌‌شدن خود جلوگیری می‌‌کنند و برای کشتن شما تلاش می‌‌کنند. هماهنگی وارتباط بین دشمنان دراین بازی، کم‌‌نظیر است. همه این موارد در کنار هم قرار می‌‌گیرند و یکی از درگیرکننده‌‌ترین و هیجان‌‌انگیزترینبازی‌‌ها را به‌‌وجود می‌‌آورند.صحنه هایی از بازی FEAR 24. آرما (ARMA)این بازی یکی از بهترین بازی‌‌ها در بخش تیراندازی است و در سایر زمینه‌‌ها نیز از ماشین‌‌ها و ابزار‌‌ها گرفته تا دقت بالای سلاح‌‌ها، حرف‌‌های زیادی برای گفتن دارد. هوش‌‌مصنوعی این بازی، کیفیت بالایی دارد به‌‌طوری که دشمنان در این بازی، صرفا موانعی برای ادامه روند بازی نیستند بلکه یک تهدید واقعی هستند حتی اگر هزاران متر از سربازان دشمن دور باشید، خطر ضربه‌‌‌ به ‌‌سرهمواره وجود دارد.  این بازی قابلیت تنظیم درجه سختی در هوش‌‌مصنوعی اش را دارد .دشمنان مکان پنهان‌‌شدن خود را هوشمندانه انتخاب می‌‌کنند و پیشبینی حرکت بعدی هر‌‌یک از آن‌‌ها اصلا کار راحتی نیست به‌‌طوری که‌‌ تنوع بازی در مراحل مختلف باعث یکسان نبودن و جذاب تر شدن بازی می‌‌شود. قابلیت‌‌های این‌‌بازی، امکان شخصی سازی‌‌ شدنرا دارند که این ویژگی برجذاب بودن ‌‌آن خواهد افزود. صحنه هایی از بازی ARMA5. سلام همسایه (HELLO NEIGHBOR)داستان این بازی در مورد همسایه‌ای مشکوک است که صدای فریاد یک بچه از خانه‌ی او می‌آید و شامل چند مرحله متفاوت است. هوش‌مصنوعی این بازی شامل 4 حالت است.حالت  : Idleدر این حالت، همسایه همه‌‌ی کارهای روزانه خود را از جمله خوردن، خوابیدن، ورزش‌کردن و تمیز کردن خانه را انجام می‌دهد و بازیکن مخفیانه وارد می‌شود و به دنبال رموز خانه می‌گیردد.حالت Haunt : کوچک‌ترین تغییری در وسایل خانه، همسایه را از وجود فردی در خانه‌اش آگاه می‌سازد و همسایه به دنبال بازیکن می‌گردد . در این حالت همسایه نمی‌داند که شما دقیقا در کجا پنهان شده‌اید بلکه با بررسی مکان‌های احتمالی پنهان شدن بازیکن، متوجه‌ می‌شود که احتمال قایم شدن فرد در کجا بیشتر است.حالت Attack : از همان ابتدا همسایه به دنبال بازیکن است و هرکاری را انجام می‌دهد تا شما رو پیدا کند از بستن تمام درهای خانه گرفته تا گشتن تمام خانه.حالت Offline : همسایه تله‌‌هایی را برای شما در خانه می‌گذارد مانند سطل های آب بالای درها، دوربین‌های مدار بسته و درها و پنجره هایی که با ورقه‌های چوبی مسدود شده‌اند.صحنه هایی از بازی HELLO NEIGHBORاستفاده ازهوش‌مصنوعی در بازی‌ها مانند شمشیر دو لبه است، ممکن است آن را به شاهکاری بی‌همتا تبدیل کند و یا برای همیشه آن را یک بازی شکست‌خورده جلوه دهد، البته در آینده‌ای نه چندان دور شاهد تغییراتی در بازی‌‌های ویدئویی خواهیم بود که اکنون برای ما قابل درک و پیش‌بینی نیستند. به راستی سفر هوش‌مصنوعیِ بازی‌ها به کدام مقصد خواهد رسید؟منابع :https://www.zoomg.ir/https://youtu.be/7MVzKuQ5SfYhttps://www.youtube.com/watch?v=bYlooODhkHwhttps://www.youtube.com/watch?v=p4KqryLMseQhttps://youtu.be/Hu7Z52RaBGkhttps://youtu.be/oJ7d7iTigFkhttps://youtu.be/y7T2xe54oJUhttps://youtu.be/KQN3yKYkFmEhttp://www.aparat.com/v/udebV/%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86_%D8%A8%D8%A7%D8%B2%DB%8C_%D8%B3%D9%84%D8%A7%D9%85_%D9%87%D9%85%D8%B3%D8%A7%DB%8C%D9%87_hello_neighbor?t=395با تشکر از همراهی شما???</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>Fatemeh Rezaei</author>
                <pubDate>Sun, 13 Mar 2022 13:28:20 +0330</pubDate>
            </item>
                    <item>
                <title>7 نکته مهم در استفاده از هوش مصنوعی در بازی</title>
                <link>https://virgool.io/pubUIAI/7-%D9%86%DA%A9%D8%AA%D9%87-%D9%85%D9%87%D9%85-%D8%AF%D8%B1-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%AF%D8%B1-%D8%A8%D8%A7%D8%B2%DB%8C-mqz92zedmiul</link>
                <description>      با رشد روز افزون صنعت گیمینگ و ایجاد رقابت بین شرکت های بازیسازی برای تصاحب این بازار ، نوآوری های  زیادی توی این زمینه شکل گرفته . از جمله اونا هم استفاده از هوش مصنوعیه که امروز تبدیل به یکی از پایه های مهم هر بازی شده . مثلا استفاده اون برای ایجاد یک دشمن باهوش      برای دستیابی به بهترین  عملکرد،  یه سری معیارها نیازن تا بازی بتونه طرفدارای زیادی رو به خودش جذب کنه . هوش مصنوعی :1 - به بازیکن اجازه میده تا تقلب کنه !بازیکن باید احساس هوشمندی کنه . با قرار دادن یسری محدودیت ها برای دشمن ، اجازه بدید تا بازیکن یک استراتژی بچینه و احساس باهوشی کنه . مثلا در خیلی از بازی های سبک اکشن ، موانعی تعبیه شده تا بازیکن بتونه با استفاده ازونا از آسیب بیشتر جلوگیری کنه و راحت تر دشمن رو هدف قرار بده .2 - احساساتشو بیان میکنه !خیلی وقتا میبینیم که با انجام یه تغییر در محیط اطراف ، دشمنا هم واکنش خاصی رو نشون میدن . مثلا با بازگذاشتن یک در ، دشمن به سمت در میاد و با یه لحن حیرت زده ، از بازبودن در حرف میزنه . این رفتار محدود فقط به گفتن عبارت ها نیست و میتونه به شکل هر رفتار بدنی دیگری باشه . جالب تر اینکه پژوهش ها نشون دادن با نسبت دادن تیپ شخصیتی های متفاوت به هر دشمن میشه به تعامل بیشتر با بازیکن کمک کرد .3 -  قابل پیشبینیه !اگر فکر میکنین این باعث خسته کننده شدن بازی میشه در اشتباهید ! هرچند که از سختی بازی کم میشه ، اما جای یک عنصر مهم رو خالی میگذاره ... استراتژی !فرض کنید با گذروندن چند مرحله از یک بازی به این برسید که میتونید با هدف گرفتن بشکه های قرمز ، ضربه های محلکی به دشمن بزنین . این به شما کمک میکنه تا حمله های بعدیتون رو با برنامه ریزی بیشتری انجام بدید و به خودتون افتخار کنین !4 - با محیط بازی در تعامله !وقتی بازیکن میبینه که دشمنش هم مثل خودش میتونه از محیط بازی استفاده کنه ، به هوشمندی دشمنش پی میبره و سعی میکنه با وسواس بیشتری به نبرد با اون به پردازه . استفاده از میله افتاده روی زمین به عنوان یک سلاح برای مبارزه با بازیکن ، میتونه مثال خوبی برای استفاده ازین کار باشه .5 - با بازیکن در تعامله !با این کار میشه از انجام استراتژی های تکراری و خسته کننده بازیکن جلو گیری کرد . دشمن با گرفتن آمار یک سری حرکات بازیکن ، به پوشش نقاط ضعف و بهبود عملکرد خودش می پردازه و بازیکن چاره ای جز تغییر حرکاتش نداره . مثلا دشمن با مشاهده عملکرد بالای بازیکن در ضربات هد شات ، در دفعات بعد از کلاه خود می پردازه .6 - اهداف خاص خودش رو دنبال میکنه !در کنار کشتن بازیکن ، میتونیم هدف های دیگری قرار بدیم تا دشمنا رو هرچه بیشتر باهوش جلوه بدیم . مثلا این سناریو رو در نظر بگیرید که بازیکن در یک جنگل گم شده و چند ببر گرسنه به دنبال کشتن اون هستند ، اما با دیدن ببر هایی از قلمرو های دیگر ، دست از سر بازیکن بر میدارن و به مبارزه با هم میپردازند . مورد مشابه را میتوان در بازی RainWorld  مشاهده کرد .7 -  فقط دشمن رو در بر نمی گیره !بعضی وقتا ، تجربه همکاری میتونه خیلی لذت بخش تر از کشتن دشمنا در تنهایی باشه . هرکدوم با ایفا کردن نقش خودشون به درستی میتونن شانس موفقیت در بازی رو چند برابر کنن . هوش مصنوعی باید با بازیکن تو یک سری مراحل نقش مکمل رو ایفا کنه و بازیکن رو به تعامل هرچه بیشتر دعوت کنه. مثل قلاب انداختن برای بالا رفتن از یک دیوار ، یا پرت کردن حواس دشمن ! در پایان باید به این نکته هم اشاره کرد که هدف اصلی هوش مصنوعی د بازی های کنونی از بین بردن بازیکن شما به راه های مختلف نیست ، بلکه ساختن لحظه های شیرین و ماندگاره  .</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>Aliakbar Ahrari</author>
                <pubDate>Fri, 11 Mar 2022 17:34:53 +0330</pubDate>
            </item>
                    <item>
                <title>ماشین های هنرمند</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%87%D8%A7%DB%8C-%D9%87%D9%86%D8%B1%D9%85%D9%86%D8%AF-ag2x0lry9mwo</link>
                <description>اولین تصویر کشیده شده توسط هوش مصنوعیحدس میزنید نقاش این اثر کیست؟  برای تقلب، شاید به امضای اثر دقت کنید و بگویید:« امضاست یا فرمول ریاضی؟!» خب، در واقع الگوریتمی ست که هوش مصنوعی، توسط آن، این اثر را خلق کرده است. بله درست خواندید. هوش مصنوعی!هوش مصنوعی پا به عرصه هنر می گذارداین فناوری توانسته است در حوزه های مختلف هنری مانند نقاشی، نویسندگی، فیلم نامه نویسی، موسیقی و غیره، همه را غافلگیر کند!در حوزه نقاشی  خالی از لطف نیست به نقاشی‌های گوگل که به کمک فناوری یادگیری عمیق و تنوع بصری جهان و اللخصوص اینترنت ایجاد شده اند نیز اشاره کنیم.اثری از گوگل!تابستان دو سال پیش نیز، SIGGRAPH 2020، کنفرانس پیشرو گرافیک کامپیوتری و تکنیک های تعاملی جهان، یک برنامه آنلاین ویژه را ارائه کرد که نوآوری های هنر دیجیتال را به نمایش می گذارد. این انتخاب ها شامل 13 نصب مجازی در گالری هنری و 15 پیشرفت تحقیقاتی ارائه شده در برنامه Art Papers است. جایزه بهترین نمایش گالری هنر به «کر کاکفونیک» اهدا شد.طبع شعر و شاعری در ادبیاتاحتمالا راجب ربات هایی که خواندن و نوشتن می دانند، شنیده اید؛ پس گفتن این حقیقت که هوش مصنوعی در ادبیات و شعر دستی بر آتش دارد، نباید چندان باعث تحیر شود!ابزار Verse by Verse مبتنی بر هوش مصنوعی میانبری برای شاعر شدن فراهم می کند.بدین گونه که  کاربران می توانند حداکثر سه شاعر آمریکایی را از فهرستی که شامل امیلی دیکنسون، والت ویتمن و ادگار آلن پو است انتخاب، سپس ساختاری را برای شعر خود انتخاب کنند. پس از وارد شدن خط اول شعرشان، ابزار خطوطی را برای ادامه شعر پیشنهاد می کند. کاربران می توانند سطرهای پیشنهادی یک لیست را بپذیرند، رد یا تغییر دهند و شعر را در هر نقطه به پایان برسانند.البته تبحر هوش مصنوعی در ادبیات تنها در شعر خلاصه نمی شود!نمونه ای انشای هوش مصنوعیدر عرصه سینماجایزه اسکار این قسمت میرسد به فیلم کوتاه سانسپرینگ (Sunspring) که فیلم نامه آن توسط هوش مصنوعی تهیه شده است. در واقع می توان گفت اولین فیلم کوتاهی ست که تقریبا بدوم دخالت انسان نوشته شده است.Sunspringموسیقیاستفاده از الگوریتم های هوش مصنوعی برای تولید موسیقی در نگاه اول یک انتخاب طبیعی به نظر می رسد. موسیقی اساساً مجموعه‌ای از نت‌ها است – و هوش مصنوعی با این نوع داده‌ها رشد می‌کند. بنابراین، دیدن نوع پیشرفتی که محققان در زمینه هوش مصنوعی برای موسیقی داشته اند، تعجب آور نیست. پروژه Magenta گوگل که در تابستان 2016 راه اندازی شد، در ابتدا به طور گسترده در میان علاقه مندان به تحقیقات و هوش مصنوعی شناخته شد، اما ادعای شهرت آن در میان مردم، ابله باخ آنها بود.  مدل هوش مصنوعی Coconet نام دارد، یک شبکه عصبی کانولوشن (Convolutional neural network) که قطعات موسیقی گمشده را پر می کند. برای آموزش این مدل، یک تیم از 306 قطعه نوشته شده توسط باخ استفاده می کند: مدل برخی از یادداشت‌های تصادفی را از مجموعه آموزشی پاک و یادداشت‌های جدیدی را برای پر کردن جاهای خالی ایجاد می‌کند.                                                 (تدوین موسیقی توسط هوش مصنوعی)نقش چشم گیر هوش مصنوعی در هنر با ارزش ترین فعالیت هوش مصنوعی در عرصه هنر، احیای آن است. در واقع آثار هنری آسیب‌دیده را باز سازی میکند. به این ترتیب که شبکه‌های عصبی ،توسط الگوریتم، با بررسی بخش‌های باقی مانده از یک اثر می‌تواند سبک کار هنرمند را تشخیص داده و بر اساس آن بخش‌های از میان رفته را به شبیه‌ترین شکل ممکن، بازسازی کنند.با این تفاصیر، هوش مصنوعی می تواند جایگزین انسان شود؟! خیر.فناوری های امروزه و پیشرفت های چشم گیرشان همیشه در هر زمینه ای کمک ما بودند و هستند و ما دست بوس شان هستیم و خواهیم بود. اما در زمینه هنر، هوش مصنوعی نمی تواند جای انسان را بگیرد. چرا که هنر یعنی خلاقیت انسان و جایگزینی برای آن وجود ندارد.(چکیده ای از صحبت های آروشی کاپور، مدیر عامل و بنیان گذار شرکت ARTSop)دیدگاه دیگری که در بین هنردوستان وجود دارد این است که ماشین‌ها نمی‌توانند هنر واقعی درست کنند. این دیدگاه نسبتا صحیح است چون تا به اینجای کار هوش مصنوعی تنها قابلیت خود را در مطالعه و درک هنر موجود و ارتقا و ترکیب آنها برای درست کردن یک چیز جدید و حتی بهتر نشان داده است نه بیشتر.منابع https://www.analyticsvidhya.com/  https://syncedreview.com/  https://www.dailyartmagazine.com/  https://hooshio.com/ </description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>Shina Atashfaraz</author>
                <pubDate>Thu, 10 Mar 2022 15:25:57 +0330</pubDate>
            </item>
                    <item>
                <title>خداحافظ pandas، از Terality استفاده کنید.</title>
                <link>https://virgool.io/pubUIAI/%D8%AE%D8%AF%D8%A7%D8%AD%D8%A7%D9%81%D8%B8-pandas-%D8%A7%D8%B2-terality-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D8%AF-nzrbikj8l4v6</link>
                <description>دوقلو شیطانی با سینتکسی مشابه اما تا 30 برابر سریعتر...مانند همه چیز، هنگام کار با داده‌های بزرگ، ما از اینکه چه پکیجی را انتخاب کنیم رنج می‌بریم. ابزار شماره یکی که به ذهن ما می رسد پانداس(pandas) است، پس از آن ابزارهایی مانند Dask, Vaex, Datatable, cuDF . اکنون باید ترالیتی(Terality) را به این لیست اضافه کنیم.آیا ترالیتی یکی از آن پکیج‌هایی است که سعی می کند سرعت لاک پشت پانداس را به قیمت سادگی و انعطاف پذیری محبوب خود جایگزین کند؟نه،ترالیتی همزاد شیطانی پانداس است که با ابرقدرت‌ها متولد شده است. سینتکس آن با پانداس یکسان است اما با سرعت رعد و برق کار می‌کند و به سیستم شما وابسته نیست تا جادوی خود را انجام دهد.ترالیتی چیست و چگونه کار می کند؟ترالیتی یک موتور پردازش داده بدون سرور است که روی دسته‌های غول پیکر اجرا می شود. شما می‌توانید با دیتاستی با هر اندازه عظیمی کار کنید، به سرعت و بدون نگرانی در مورد اندازه منابع روی دسته‌ها یا زیرساخت‌ها.این یعنی:1. عملاً هیچ محدودیتی در حافظه وجود ندارد، بنابراین در اندازه دیتاست محدودیتی وجود ندارد.2. برای پردازش صدها گیگابایت، حتی در یک دستگاه رم 4 گیگابایتی، فقط به یک اتصال اینترنت خوب نیاز دارید.و مزیت اصلی ترالیتی این است که پکیج پایتون آن همان دستور پانداس را دارد.شما فقط باید یک خط کد را تغییر دهید تا از پانداس به ترالیتی سوییچ کنید.وقتی که شما توابع پانداس را فراخوانی می‌کنید، پکیج Python درخواست‌های HTTPS را به موتور ترالیتی ارسال می‌کند. موتور، داده‌ها و دستورات را پردازش می‌کند و نتیجه را پس می‌فرستد.تنظیم نیز حدود یک دقیقه طول می کشد. شما کتابخانه را با pip نصب می کنید و API خود را وارد می‌کنید تا دستگاه خود را به موتور متصل کنید. همه چیز اینجا در این لینک است.آماده کردن دیتاست:پانداس در ژانویه 2008 معرفی شد، زمانی که بچه دیتاست های امروزی تنها چیزی بود که دانشمندان داده باید نگران آن می‌بودند.اکنون، مردم باید با دیتاست‌های عظیمی دست و پنجه نرم کنند و متوجه می‌شوند که پانداس توانایی مدیریت چنین دیتاست‌هایی را ندارد. ترالیتی اینجاست تا این مشکل پایه را حل کند.به عنوان مثال، ما یک دیتاست ساده (دیتاست Kaggle TPS مه 2021) می گیریم و از آن نمونه برداری می کنیم تا 60 میلیون ردیف و 18 ستون داشته باشد.import pandas as pd       
df = pd.read_csv(&amp;quotdata/train.csv&amp;quot)       
large_df = df.sample(6 * 10 ** 7, replace=True)  # 60 million rows       
large_df.to_parquet(    &amp;quotdata/tps_may_large.parquet&amp;quot, row_group_size=len(df) // 15, engine=&amp;quotpyarrow&amp;quot   )ما داده‌ها را با فرمت Parquet ذخیره می کنیم زیرا نوشتن آن در CSV تا حد احمقانه ای بسیار خوش بینانه است. فایل حدوداً 7 گیگابایت خواهد بود که با استانداردهای امروزی هنوز بسیار کوچک است:from pathlib import Path
size = Path(&amp;quotdata/tps_may_large.parquet&amp;quot).stat().st_size   
size_in_gb = size / 1024 ** 3      
 &gt;&gt;&gt; round(size_in_gb, 2)   7.1پانداس در مقابل ترالیتی: بارگیری داده:مقایسه سرعت را با بارگذاری فایل Parquet در فضای کاری خود شروع خواهیم کرد.عملکرد پانداس به شدت به CPU دستگاه شما بستگی دارد. دستگاه من AMD Ryzen 9 3900X با 12 هسته است - یک پردازنده بسیار پیشرفته که سریعتر از CPU های رایگان سرورهای Google Colab یا Kaggle است. بنابراین، می توان انتظار داشت که دستگاه من مبارزه خوبی با سرورهای مجازی ترالیتی داشته باشد.import pandas as pd       
%%time       
df = pd.read_parquet(&amp;quotdata/tps_may_large.parquet&amp;quot)من داده‌ها را از حافظه محلی با پانداس خواندم.در ترالیتی، من داده ها را از یک بسته Amazon S3 خواندم:import terality as te       
%%time       
df_te = te.read_parquet(&amp;quots3://sample-bucket-for-medium/tps_may_large.parquet&amp;quot)حتی اگر بتوانید با فایل‌های محلی کار کنید، ترالیتی با فایل‌های Amazon S3 یا Google Cloud بهترین کار را می‌کند.همانطور که قبلاً اشاره کردم، سرعت ترالیتی به سرعت اینترنت شما بستگی دارد، نه قدرت CPU. خواندن فایل Parquet از روی حافظه به معنای ارسال 7 گیگابایت داده به موتور است که ایده آل نیست.سرعت اینترنت در کشور ما ضعیف است، بنابراین تکلیف S3 مشخص است. در اینجا نتایج آمده است:در حال حاضر، ترالیتی کمی عقب است، که دلیل آن عمدتاً سرعت اینترنت و قدرت CPU من است. بیایید سایر عملیات سنگین محاسباتی رایج را برای مقایسه بیشتر انجام دهیم.عملیات‌های متداول پانداس:قبل از اینکه نتایج محلی خود را نشان دهم، بیایید به نحوه عملکرد ترالیتی در برابر پانداس و جایگزین های قدرتمند آن در معیار شناخته شده h2o با استفاده از یک دیتاست 50 گیگابایتی نگاه کنیم.در اینجا نتیجه یک عملیات groupby پیشرفته را مشاهده می کنید:همانطور که می‌بینید، فقط ترالیتی می‌تواند درست کار کند در حالی که دیگر پکیج‌ها درست کار نمی‌کنند و خطاهای ناخوشایند حافظه را نشان می‌دهند. همین امر برای عملیات پیوستن (join)  نیز صادق است:البته، همه، دستگاه‌های 128 گیگابایتی لوکس را ندارند، بنابراین من فقط آزمایش‌ها را روی دستگاه ساده 32 گیگابایتی خود نشان می‌دهم:گروه‌بندی (Grouping):%%time       
df.groupby(&amp;quotcat2&amp;quot).mean()مرتب‌سازی (Sorting):%%time       
df.sort_values(by=&amp;quotcont5&amp;quot, ascending=False)ایجاد یک ستون جدید:%%time  df[&amp;quotnew&amp;quot] = df[&amp;quotcont0&amp;quot].apply(lambda x: np.sqrt(np.exp(x)))   
df[&amp;quotnew&amp;quot].sample(5)           
145053 1.40283   
286303 1.27540   
103920 1.16384   
85100 1.29126   
216857 1.17710   
Name: new, dtype: float64جایگزین کردن (Replacing):%%time       
df.replace([&amp;quotA&amp;quot, &amp;quotB&amp;quot, &amp;quotC&amp;quot], [&amp;quotAA&amp;quot, &amp;quotBB&amp;quot, &amp;quotCC&amp;quot], inplace=True)همانطور که گفتم، ماشین من به خوبی جنگید اما همچنان در تمام عملیات‌ها شکست خورد.هشدارها و قیمت گذاری:اگرچه ترالیتی دارای سینتکس یکسانی است، اما برخی از توابع پانداس هنوز پیاده سازی نشده اند.شما می توانید انتظار داشته باشید که حدود 80 تا 90 درصد از تمام متدهای DataFrames و Series روی ساختار داده ترالیتی نیز کار کنند. بیشتر توابع موجود در فضای پانداس (آنهایی که با pd.some_function نامیده می شوند) نیز کار می‌کنند. با توجه به اینکه ترالیتی هنوز در مرحله بتا است، این کار کوچکی نیست.شاید قبلاً آن را حدس زده باشید، اما ترالیتی یک نرم افزار فریمیوم است. یعنی طرح رایگان به شما 200 گیگابایت پهنای باند می‌دهد، اما باید برای هر چیز بزرگتری هزینه کنید.دیتاست های امروزی حدود 68 گیگابایت حافظه عمیق(deep memory) اشغال می‌کند. (به df.info(memory_usage=&#x27;deep&#x27;) مراجعه کنید)، بنابراین طرح رایگان من را خیلی سریع مصرف کرد. با این حال، تیم ترالیتی به اندازه کافی مهربان بود که طرح من را ارتقا داد و من را قادر ساخت تا آزمایشات این مقاله را به پایان برسانم.پس از نوشتن این مقاله، ترالیتی برنامه های قیمت گذاری خود را که در تصویر نشان داده شده است، به روز کرد.نتیجه‌گیری:بله، ترالیتی عالی است – هیچ ابزار دیگری وجود ندارد که شباهت آن به پانداس را داشته باشد. موتور بدون محدودیت حافظه آن بسیار عالی است.اما ترالیتی چیزی نیست که بتوانید در اوقات فراغت خود آن را به آتش بکشید و بعد آن را سر هم بندی کنید. طرح 200 گیگابایتی آنقدرها هم که فکر می‌کنید سخاوتمندانه به نظر نمی‌رسد زیرا هر فراخوانی API مهم است، نه فقط خواندن داده‌ها.در ابتدا، من به شما پیشنهاد می‌کنم یاد بگیرید که چگونه از خود پانداس بهترین بهره را ببرید و آن را در سریع ترین زمان ممکن بسازید. فقط زمانی که شروع به دریافت خطاهای حافظه کردید و حتی منتظر ساده ترین محاسبات هستید، زمان آن فرا رسیده است که به دنبال جایگزین بگردید.ترالیتی باید یکی از انتخاب‌های برتر باشد زیرا سریع‌ترین و ساده‌ترین انتخاب است و عملاً هیچ منحنی یادگیری ندارد.</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>Ali Rostaminia</author>
                <pubDate>Wed, 02 Mar 2022 12:36:58 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی الگوریتم های ماشین لرنینگ با استفاده از scikit-learn</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%84%D8%B1%D9%86%DB%8C%D9%86%DA%AF-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-scikit-learn-aclxbrh16v6a</link>
                <description>بخش مقدماتی : ?تعریف ساده ماشین لرنینگ اینطوری میشه  گفت که به  علم برنامه نویسی کامپیوتر ها به نحوی که از داده ها یادبگیرند . یا به عبارت دیگه حوزه ای از علوم کامپیوتره که این قابلیتو به کامپیوتر میده که بدون برنامه نویسی شدن به طور مشخص یه کاریو انجام بده.یه مثال ساده از ماشین لرنینگ فیلتر اسپم ایمیله . که یه سری از ایمیل های آشغال رو به عنوان اسپم بهش میدیم و یه سری دیگه که مهم هستند رو به عنوان ایمیل مهم یا None-Spam بهشون میدیم و میاد بر اساس نمونه هایی که بهش دادیم به ایمیل ها لیبل میده که اسپم هستند یا نیستند .فرق ماشین لرنینگ با کد زدن عادی چیه ؟تو همون مثال ایمیل های اسپم فرض ما می خوایم خودمون یه برنامه ای طراحی کنیم که بیاد توی ایمیل ها بگرده و مثلا یه سری الگو های کلامی که ایمیل های اسپم دارند رو تشخیص بده و هر چه قدر که تعداد این الگو ها بیشتر بود احتمال اینکه این ایمیل عنوان اسپم بگیره بیشتر هستش پس به طور خلاصه اون عمل اصلی و مهمی که ما انجام میدیم نوشتن قوانین تشخیص این الگو هاست.بدیه این کار چیه ؟ اینکه نهایتا ما یه مقدار زیادی کده پیچیده داریم که فقط برای این لیست از ایمیل ها کار می کنه?در مقابل یه فیلتر اسپم با استفاده از ماشین لرنینگ به طور خودکار یادمیگیره کدوم کلمات و جملات نشون دهنده اسپم بودن ایمیل هستند حالا چجوری اینکارو انجام میده ؟ میاد تو ایمیل ها میگرده که کدوم کلمات و جملات به طور غیر طبیعی تکرار شدند و یه سری الگو توی این کلمات پیدا می کنهاین برنامه به مراتب کوتاه تر و دقیق تر از روش قبلی هست و جوریه که ما اگه یه سری ایمیل جدید بهش بدیم خودشو تطبیق میده به دیتا های جدید?پس به طور خلاصه ماشین لرنینگ برا اینکار ها مناسبه : مسائلی که توش پیدا کردن جواب مناسب نیازمند قوانین و حالات بسیار زیادی هست .محیط هایی که توی اونها  داده های به طور مرتب تغییر می کنند و استفاده از یه سری کد ثابت جوابگو نیستش و باید به طور مرتب این کد تغییر بکنه بسته به دیتایی که داره.توی بحث بیگ دیتا استفاده از ماشین لرنینگ به ما کمک می کنه که روابط بین یه سری ورودی ها رو درک کنیم و اصطلاحا اونارو همسو بدونیم.انواع ماشین لرنینگ :به طور کلی  سیستم های ماشین لرنینگ بر اساس اینکه چه نوع و مقدار داده ای رو نظارت روش میکنند ، به چهار دسته نظارتی ، غیرنظارتی ، تقویتی و شبه نظارتی تقسیم میشند که من سه تای اولو یه توضیح مختصری میدم?یادگیری نظارتی(supervised learning):توی یادگیری نظارتی training data set  که ما به برنامه میدیم شامل مقادیر خروجی یا به زبون دیگه جوابی که باید برنامه بده میشه که بهشون میگیم لیبل(Label) همون مثال فیلتر اسپمی که اول کار گفتم هم از همین نوع هست.مثلا یه کاربرد دیگه ای که میتونه داشته باشه تو بحث قیمت خودرو ، ملک یا به طور کلی هر نوع مقدار عددی هست که پارامتر های عددی دیگه رابطه دارند . ما یه سری خصوصیت (feature ) مثل سال تولید ، کیلومتر طی شده ، رنگ ، اتوماتیک بودن یا نبودن و ویژگی های  دیگه رو به همراه قیمتش به عنوان training set  میدیم و الگوریتم  پیشبینی می کنه که  مثلا  یه ماشینی مدل 82 دنده اتوماتیک با رنگ نقره ای  چه قیمت هست  و این قیمت رو  که مدل ما پیشبینی کرده میایم نسبت میدیم به قیمت واقعیش و میفهمیم که درصد خطاش یا دقتش چقدر بوده.نکته مهمی هم که باید اضافه بکنم تو حوزه ماشین لرنینگ بین دو کلمه attribute و feature تفاوت وجود داره به این شکل که attribute فقط اشاره به نوع داده داره اما feature  نوع و مقدار اون داده رو مشخص می کنه .یادگیری غیر نظارتی (unsupervised leaning ): توی این روش برخلاف روش قبل  ما درون  داده ای که آموزش میدیم  لیبل نداریم و در واقع هیچ معیاری برای سنجش درست یا غلط بودن وجود ندارهبه عنوان مثال ما حجم زیادی  دیتا از بینندگان وبساتیمون داریم و می خوای با استفاده از الگوریتم کلاسترینگ افرادی که سلیقه های مشترکی دارند رو گروه بندی کنیم . اینکارو الگوریتم بدون هیچ کمکی از داده ترین انجام میده و باید خودش شباهت ها و اشتراکات این داده ها رو تشخیص بده مثلا تشخیص بده به عنوان مثال 60 درصد خوانندگان مرد هستند یا مثلا 20 درصد مردم علاقه به فیلمای اکشن دارند.یه سری دیگه از الگوریتم های غیر نظارتی نمایش بصری (visualization ) هستند که توی بحث بیگ دیتا و داده های حجم بالایی که لیبل ندارند خیلی کاربردیه و میتونه خیلی سریع  بینش کلی از اون داده ای که داریم بهمون بدهیک موضوعی که مربوط به یادیگری غیرنظارتی  هستش و خیلی مهم هست بحث کاهش ابعادیه (dimensionality reduction  ) که درش ما بدون اینکه اطلاعات زیادی رو از دست بدیم میایم داده های ساده تر می کنیم و برای این کار میایم گروه های داده ای رو که با همدیگه مرتبط هستند مرج (merge)می کنیم تا تقسیم بندی ساده تر بشه به عنوان مثال کیلو متر ماشین با عمر ماشین مرتبطه به خاطر همین میایم ما این دو گروه از داده رو مرج می کنیم به این عمل feature extraction گفته میشه .یادگیری تقویتی (    Reinforcement learning  ):توی یادگیری تقویتی سیستم یادگیری محیط رو مشاهده می کنه یه عملی رو انتخاب و اونو انجام میده و در صورت درست بودنش جایزه میگیره در غیر این صورت هم جریمه میشه جوریه که یادمیگیره که بهترین استراتژی چیه که تو طول زمان بیشترین جایزه یا توکن رو بگیرهمثال های زیادی هم داره از حوزه رباتیک گرفته تا  شبیه سازی و مدلینگ تا  بحث گیمینگ و پست خودشو میطلبه تا توضیح بدم ?من توی این پست سعی کردم مقدمه ای از مطالبی که در ادامه قراره با کتابخونه scikit-learn  انجام بدیم بیان کنم منبع اصلی برای مطالب این کتابی هست که معرفی می کنم . Hands-on Machine Learning  with Scikit-Learn, Keras and TensoFlow ترتیب مطالب و الگوریتم هایی هم که قراره پوشش بدیم  شبیه به مسیر راه شکل زیره امیدوارم این مطلب مفید واقع شده باشه. </description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>Hesam Mohebi</author>
                <pubDate>Wed, 02 Mar 2022 01:27:05 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (plotly)(بخش سوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-sbhfbpon4090</link>
                <description>کتابخوانه Theming and templates in Python:این کتابخانه دارای تعداد بسیار زیادی از جلوه ها هست که دست ما را جهت انتخاب و به کارگیری درست آنها بازمیگذارد. همچنین امکان شخصی سازی این جلوه ها در این کتابخانه فراهم است.مشاهده تم های در دسترس :برای مشاهده جلوه ها و تم های قابل استفاده در این کتابخانه میتوان از قالب زیر پیروی کرد.import plotly.io as pio pio.templatesخروجی:Templates configuration-----------------------Default template: &#039;plotly&#039;Available templates:[&#039;ggplot2&#039;, &#039;seaborn&#039;, &#039;simple_white&#039;, &#039;plotly&#039;,&#039;plotly_white&#039;, &#039;plotly_dark&#039;, &#039;presentation&#039;, &#039;xgridoff&#039;,&#039;ygridoff&#039;, &#039;gridon&#039;, &#039;none&#039;]استفاده از تم ها قابل استفاده :با استفاده از فرمان زیر میتوان تمام تابع ها و آرگومان های به کار رفته در یک قالب را فرا خواند و جهت تغییردادن تم از انها استفاده کرد. به طور مثال ما میخواهیم نمودار رو به رو را در تم سیاه پیاده نماییم.df = px.data.gapminder() df_2007 = df.query(&amp;quotyear==2007&amp;quot) for template in [ &amp;quotplotly_dark&amp;quot]: fig = px.scatter(df_2007, x=&amp;quotgdpPercap&amp;quot, y=&amp;quotlifeExp&amp;quot, size=&amp;quotpop&amp;quot, color=&amp;quotcontinent&amp;quot, log_x=True, size_max=60, template=template, title=&amp;quotGapminder 2007: &#039;%s&#039; theme&amp;quot % template) fig.show()همیشه برای اینکه بخواهیم از یک تم به عنوان تم پیش فرض استفاده کنیم، میتوان از این کد برای تعیین تم گلوبال و پیش فرض برنامه استفاده کرد .import plotly.io as pio import plotly.express as px pio.templates.default = &amp;quotplotly_white&amp;quotاجبار یک محور به نمایش داد ه ها به صورت طبقه بندی شده :با تنظیم مستقیم xaxis_type می توان نوع محور را مجبور به تغییر کرد. در مثال زیر، نوع محور X به خودکار خطی خواهد بود اما ما آن را مجبور میکنیم که به صورت دسته بندی شده باشد.import plotly.express as px fig = px.bar(x=[&amp;quota&amp;quot, &amp;quota&amp;quot, &amp;quotb&amp;quot, 3], y = [1,2,3,4]) fig.update_xaxes(type=&#039;category&#039;) fig.show()تعیین نام محور افقی و عمودی در نمودار ها :همانگونه که قبلا مشاهده کردید، در پلاتلی اکسپرس اگر از دیتافریم استفاده میکنیم، به طور خودکار نام سطر یا ستون انتخاب شده برای نمودار نیز استفاده میشود. ولی برای تغییر دستی )یا اجباری ( میتوان از آرگومان labels استفاده کرد. ورودی این آرگومان یک دیکشنری به اسم قبلی نمودار )همان سطر یا ستون وارده از دیتافریم( میباشد:df = px.data.tips() fig = px.scatter(df, x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, color=&amp;quotsex&amp;quot, labels=dict(total_bill=&amp;quotTotal Bill ($)&amp;quot, tip=&amp;quotTip ($)&amp;quot, sex=&amp;quotPayer Gender&amp;quot) ) fig.show()همچنین میتوان در نمودار هایی که بدون استفاده از دیتافریم درست شده اند، از x و y به جای نام دیتا استفادهکرد.تغییر مکان tick مقدار هر واحد از مختصات نمودار  :اصولا به مشخصه ای که مقدار نمودار را تعیین میکند، tickاست( » علامت « میگویند. )ترجمه فارسی برابر حال میتوان موقعیت نسبی این مقدار را نسبت به خطوط نمودار تغییر داد. به طور پیشفرض، مقادیر محور y روی انتهای خطوط مختصات، و در داخل نمودار قرار دارد ) Inside middle )ولی میتوان با کلمات کلیدی از پیش تعیین شده، این مکان را تغییر داد.df = px.data.stocks(indexed=True)-1 fig = px.bar(df, x=df.index, y=&amp;quotGOOG&amp;quot) fig.update_yaxes(ticklabelposition=&amp;quotinside top&amp;quot, title=None) fig.show()تولید چند نمودار در یک شکل :از طریق پلاتلی اکسپرس نمیتوان از هر داده ای به طور مستقیم برای چند ساب پلاتی استفاده کرد. زیرا px از ساب پلات پشتیبانی نمیکند ولی میتوان با تغییر داده ی خود، از facet ا ستفاده کرد. برای همین یک مثال میزنیم:با استفاده از متد melt که از متد های پانداس میباشد، ستون های داده ی خود را به نحوی ذوب کرده و به دو ستون تبدیل میکنیم. این تغییر شکل باعث میشود، بتوانیم از facet برای چند نموداری استفاده کنیم.df = pd.DataFrame({ &#039;Day&#039;:range(10), &#039;Temperature&#039;: np.random.rand(10), &#039;Wind&#039;: np.random.rand(10), &#039;Humidity&#039;: np.random.rand(10), &#039;Pressure&#039;: np.random.rand(10),}) df_melt = df.melt( id_vars=&#039;Day&#039;, value_vars=[&#039;Temperature&#039;, &#039;Wind&#039;, &#039;Humidity&#039;, &#039;Pressure&#039;])این تعداد سطر داده ی ذوب شده به تعداد id که همان روز میباشد، تبدیل میشود.حال میتوان از این داده ی جدید استفاده کرد و با scatter آنرا نمایش داد:اینگونه برای هر ستون داده ی خود، یک نمودار داریم.(یه جورایی ?)fig = px.scatter( df_melt, x=&#039;Day&#039;, y=&#039;value&#039;, facet_col=&#039;variable&#039;, facet_col_wrap=2, color=&#039;variable&#039;, width=800, ) fig.show()نمایش چند محور در یک نمودار :میتوان به جای یک y لیستی از ستون ها را به آرگومان y خود بدهیم تا آنها را نمایش دهد:df = px.data.stocks() fig = px.line(df, x=&#039;date&#039;, y=df.drop(&#039;date&#039;, axis=1).columns) fig.show()خیلی ممنون که تا اینجای آموزش مارا همراهی کردیدانجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیرمحسن براهیمیابوالفضل شیشه گرعلیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 13:05:32 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (plotly)(بخش اضافی)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%A7%D8%B6%D8%A7%D9%81%DB%8C-ce59cqdqpxfw</link>
                <description>فرق پلاتلی با مت پلات لیب :(برای استراحت این قسمت رو بخونید که یکم وقت بدین مغزتون قبلیا رو هضم کنه ?. در صورت آمادگی میتونین این قسمت رو رد کنین.)تا الان شاید براتون سوال شده وقتی مت­پلات­لیب بااین همه امکانات هست (که یه خوردشو بهتون یاد دادیم ?)برای­ چی نیازه که پلاتلی رو هم یاد بگیریم؟خب این موضوع رو میخوام با ذکر به مثال توضیح بدم:یک عادت آزاردهنده در بین هواداران فوتبال وجود داره که هر زمان که یک بازیکن جوان اما مسلماً استثنایی ظاهر میشه، اونو با اسطوره هایی مانند مسی یا رونالدو مقایسه می کنن.اونا یه جورایی این نکته که در زمانی که این نوجوان­ها در هسته بودن، این اسطوره ها به بازی ها غلبه کرده بودن.مقایسه Plotlyبا Matplotlibبه نوعی مشابه همان ابتدا بود. Matplotlibاز سال 2003 به شدت مورد استفاده قرار گرفته بود و Plotly به تازگی در سال 2014 منتشر شده بود.در این زمان بسیاری از Matplotlib خسته شده بودن، بنابراین Plotly به دلیل تازگی و تعامل آن به گرمی مورد استقبال قرار گرفت. با این حال، این کتابخونه نمی‌تونست امیدوار باشه که به عنوان پادشاه پایتون در حال طراحی پلات برنامه­ها از Matplotlib، جایگاه برتر را بدزده.در سال 2019، زمانی که Plotly در ماه جولای Express API خود را منتشر کرد، همه چیز به شدت تغییر کرد. این باعث انفجار علاقه در کتابخانه شد و مردم از چپ و راست شروع به استفاده از آن کردن.با نسخه اصلی دیگری (5.0.0) که در ژوئن امسال منتشر شد، من فکر می کنم Plotlyبیش از اندازه کافی برای مقایسه آن با Matplotlibبه بلوغ رسیده است.با این مقدمه، بیاین توضیح اصلی رو شروع کنیم:1. قابلیت استفاده API:بیایید با مقایسه سهولت استفاده از API آنها شروع کنیم. هر دو رابط های سطح بالا و سطح پایین را برای تعامل با عملکرد اصلی ارائه می دهند.1.1 سازگاری APIهای سطح بالاتر (Pyplotدر مقابل Express):از یه طرف، Expressدر سازگاری عالیه. این فقط شامل توابع سطح بالاتر برای دسترسی به نمودارهای داخلی است. نیازی به یادگیری راه­های جدید برای هرکاری ندارین.از سوی دیگه، Pyplotتمام توابع رسم و سفارشی سازی ها را در یک APIواحد و جدید بسته بندی می کند. حتی اگر فراخوانی نمودار دارای امضای یکسانی باشد، توابع سفارشی سازی با توابع OOP APIمتفاوت است.Plotly = 1 vs. MPL = 01.2 مقدار کد مورد نیاز برای جابجایی بین APIها:برای جابجایی از Pyplotبه OOP API MPL، به سادگی میشه نحوه تعامل با ساختارهای داده اصلی، مانند اشیاء شکل و محورها را تغییر بدیم. فراخوانی به نمودارها دارای پارامترای مشابهی هستند تغییری نمی کنه.تغییر از Expressبه اشیاء گراف نیاز به یک منحنی یادگیری تند دارد. امضای توابع برای ایجاد تمام نمودارها تغییر می کند و GO پارامترهای بسیار بیشتری را به هر فراخوانی نمودار اضافه می کند. نقطه ضعف اینجاست که GO نیاز به یادگیری پارامتر و توابع جداگانه داره.Plotly = 1 vs. MPL = 11.3 سفارشی سازی APIاگرچه بخش جداگانه ای در مورد سفارشی سازی وجود دارد، اما باید در مورد آن از نظر API صحبت کنیم.همه سفارشی سازی ها در Matplotlib دارای عملکردهای جداگانه هستند. این به شما اجازه می دهد تا تغییراتی را در نمودار در تکه های کد و با استفاده از حلقه ها یا سایر رویه ها ایجاد کنید.در مقابل، پلاتلی به طور گسترده از فرهنگ لغت استفاده می کند. در حالی که این امر سازگاری خاصی با نحوه تعامل شما با نمودارها و داده ها ارائه می دهد، اما هزینه سنگین خوانایی و طول کد را به همراه دارد.ممکن است مکث کنید و به این تفاوت‌ها بین APIها فکر کنید، اما Matplotlib بیشتر پایتونیک و خوانا است.Plotly = 1 vs. MPL = 22. سرعت:برای دیدن تفاوت واقعی بین سرعت ها، باید از مجموعه داده های بزرگتری استفاده کنیم. من مجموعه دیتابیس های diamonds را از Seaborn وارد می کنم و زمان لازم برای ترسیم یک نمودار پراکندگی ساده را با هم مقایسه می کنم. که نشون میده Matplotlib تقریبا 80 برابر سریعتر از Plotly است و خطاهای SD بسیار کمتری دارد.Plotly = 1 vs. MPL = 3تا اینجا دیدیم که پلاتلی شکستی نسبی خورده؛ پس یادگیری این کار بیهودهایه؟ قطعا تا اینجا نمیشه جوابکاملی به این سوال داد، پس ادامهی این مقایسه، میتونه مهم باشه. ولی ما ادامهی این موضوع رو به بعدا موکولمیکنیم و الان به آموزش اصلیمون میپردازیم که از اصل بحث دور نشده باشیم?انجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیرمحسن براهیمی ابوالفضل شیشه گر علیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 12:37:37 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (plotly)(بخش دوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-osdtluoyzpjp</link>
                <description>نمودار bar:df = px.data.tips() fig = px.bar(df, x=&amp;quotsex&amp;quot, y=&amp;quottotal_bill&amp;quot, color=&amp;quotsmoker&amp;quot, barmode=&amp;quotgroup&amp;quot) fig.show()براحتی میتوان با آرگمان هایی که نشان دادیم، لیبل های X و Y را نام گذاری کرد و لجند را با color تعیین کردیم.استفاده از pattern برای نمودار bar :از آرگومان های px میتوان برای هم نوع هاشور و نام ستون اطلاعات موثر در نوع هاشور استفاده کرد.df = px.data.medals_long() fig = px.bar(df, x=&amp;quotmedal&amp;quot, y=&amp;quotcount&amp;quot, color=&amp;quotnation&amp;quot, pattern_shape=&amp;quotnation&amp;quot, pattern_shape_sequence=[&#039;.&#039;, &#039;x&#039;, &#039;+&#039;]) fig.show()ظاهرا استفاده از پترن در جوپیتر در ورژن 5.1.0 پلاتلی مشکلاتی دارد که ممکن است در نسخه های بعدی درست شود.استفاده از facet در نمودار بار :df = px.data.tips() fig = px.bar(df, x=&amp;quotsex&amp;quot, y=&amp;quottotal_bill&amp;quot, color=&amp;quotsmoker&amp;quot, barmode=&amp;quotgroup&amp;quot, facet_row=&amp;quottime&amp;quot, facet_col=&amp;quotday&amp;quot, category_orders={&amp;quotday&amp;quot: [&amp;quotThur&amp;quot, &amp;quotFri&amp;quot, &amp;quotSat&amp;quot, &amp;quotSun&amp;quot], &amp;quottime&amp;quot: [&amp;quotLunch&amp;quot, &amp;quotDinner&amp;quot]}) fig.show()این آرگومان برای زمانی میباشد که چند نمودار مربوط به یکدیگر در شکل باشد و شکل، لیبل عمودی وافقی جامعی برای دسته بندی این نمودار ها داشته باشد.این آرگومان ها را میتوان برای انواع نمودار های تک بعدی و دو بعدی استفاده کرد؛ و برای بعضی از نمودار هایسه بعدی. مثال بعدی را نیز در مورد نمودار scatter میزنیم.مثال استفاده از facet در نمودار scatter :df = px.data.iris() fig = px.scatter_matrix(df, height=500, dimensions=[&amp;quotsepal_width&amp;quot, &amp;quotsepal_length&amp;quot, &amp;quotpetal_width&amp;quot, &amp;quotpetal_length&amp;quot], color=&amp;quotspecies&amp;quot) fig.show()نمودار parallel coordinates:در این سبک از نمودار، هر ردیف از دیتافریم ما با یک علامت چند خطی نشان داده می شود که مجموعهای از محورهای موازی را طی می کند، که هر سطر برای یک بعد است.df = px.data.iris() fig = px.parallel_coordinates(df, color=&amp;quotspecies_id&amp;quot, labels={&amp;quotspecies_id&amp;quot: &amp;quotSpecies&amp;quot, &amp;quotsepal_width&amp;quot: &amp;quotSepal Width&amp;quot, &amp;quotsepal_length&amp;quot: &amp;quotSepal Length&amp;quot, &amp;quotpetal_width&amp;quot: &amp;quotPetal Width&amp;quot, &amp;quotpetal_length&amp;quot: &amp;quotPetal Length&amp;quot, }, color_continuous_scale=px.colors.diverging.Tealrose, color_continuous_midpoint=2) fig.show()کار روی دیتاهای بیشتر با نمودار خطی ( line ): df = px.data.gapminder() fig = px.line(df, x=&amp;quotyear&amp;quot, y=&amp;quotlifeExp&amp;quot, color=&amp;quotcontinent&amp;quot, line_group=&amp;quotcountry&amp;quot, hover_name=&amp;quotcountry&amp;quot, line_shape=&amp;quotspline&amp;quot, render_mode=&amp;quotsvg&amp;quot) fig.show()نکته: همانگونه که میبینید، تمامی این داده ها به صورت آماده در ماژول پلاتلی اکسپرس موجود است.از لحاظ اندازه، این اطلاعات از سال 1957 تا 2010 جمع آوری شده.خروجی: استفاده همین داده در scatter :میتوان با آرگومان size سایز هر نقطه را بر اساس ستونی از داده ها مقدار دهی کرد. همچنین با آرگومان log_x میتوان تراکم نقاط در نمودار را یکپارچه کرد.df = px.data.gapminder() fig = px.scatter(df.query(&amp;quotyear==2007&amp;quot), x=&amp;quotgdpPercap&amp;quot, y=&amp;quotlifeExp&amp;quot, size=&amp;quotpop&amp;quot, color=&amp;quotcontinent&amp;quot, hover_name=&amp;quotcountry&amp;quot,log_x=True, size_max=60) fig.show()نمودار pie :برای تمیز تر بودن نمودار، کشور های کوچکتر را به عنوان other countries ، جدا میکنیم.df = px.data.gapminder().query(&amp;quotyear == 2007&amp;quot).query(&amp;quotcontinent == &#039;Europe&#039;&amp;quot) df.loc[df[&#039;pop&#039;] &lt; 2.e6, &#039;country&#039;] = &#039;Other countries&#039; fig = px.pie(df, values=&#039;pop&#039;, names=&#039;country&#039;, title=&#039;Population of European continent&#039;) fig.show()لیست کشور ها قابل اسکرول بوده و تمام کشورها با جمعیت بیش از دو میلیون در این لیست هستند، و در انتهای لیست، other countries قرار دارد.نمایش نقشه درختی :این نوع نقشه را معمولا در نقشه ی بورس به کرات مشاهده کرده ای د و با عملکرد آن نیز آشنایی دارید.df = px.data.gapminder().query(&amp;quotyear == 2007&amp;quot) fig = px.treemap(df, path=[px.Constant(&#039;world&#039;), &#039;continent&#039;, &#039;country&#039;], values=&#039;pop&#039;, color=&#039;lifeExp&#039;, hover_data=[&#039;iso_alpha&#039;]) fig.show()نکته: خروجی متد gapminder() یک دیتافریم است که میزان امید به زندگی را در هفتاد سال اخیر جمع آوریکرده است. منبع آن هم از سایت gapminder.org میباشد که به جمع آوری داده های غیرقابل دسترسی معروفاست.خروجی:خب تا اینجا تقریبا یه چیزایی راجع به پلاتلی اکسپرس و نحوه پیاده سازی نمودارای مختلف رو یاد گرفتیم. توقسمتای بعدی بیشتر وارد جزییات میشیم و سعی میکنیم به شکل های حرفه ای تر نزدیک شیم.انجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیر محسن براهیمیابوالفصل شیشه گر علیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 12:09:44 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (Plotly)(بخش اول)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-gs7pwlm88ljz</link>
                <description>نگاهی کلی به پلاتلی :پلاتلی یکی دیگر از ابزارهای تجسم داده برای زبان هایی مثل پایتون و جاوااسکریپت است که با زبانهایمتعددی از جمله جاوااسکریپت نوشته شده است. به دلیل اینکه زبان اصلی این کتابخانه جی اس است، سازگاریبسیاری با پیادهسازی تحت وب دارد و میتوان به این وسیله، نمودارهایی با فرمت HTML تجسم کرد.شروع کار با پلاتلی :همانگونه که قبلا گفته شده، میتوان در محیط conda با استفاده از اسم یک کتابخانه، آنرا نصب کرد.به راحتی از این کد استفاده کرده و آنرا دانلود و نصب میکنیم.conda install -c plotly plotly=5.4.0پس از نصب میتوان در محیط جوپیتر شروع به استفاده از این کتابخانه کرد. پس در قسمت بعد همراه ما باشیدمرحله بعدی ایمپورت و استفاده اولیه از این کتابخانه میباشد:import plotly.graph_objects as go fig = go.Figure(data=go.Bar(y=[2, 3, 1])) fig.write_html(&#039;first_figure.html&#039;, auto_open=True)در این قطعه کد، ابتدا کتابخانه ایمپورت شده و سپس، نمودار ساده ای تعریف شده و در مرورگر به طور خودکار نمایش داده میشود. همانگونه که مشاهده میشود، نمودار کاملا تعاملی است و نشانه ی قدرت این کتابخانه است.این صفحه ی مرورگر است که به طور خودکار توسط آرگمان « auto_open باز میشود. import plotly.graph_objects as go fig = go.Figure(data=go.Bar(y=[2, 3, 1])) fig.show()به خاطر پشتیبانی پلاتلی از جوپیتر، میتوان خروجی این نمودار را مستقیم در این محیط پیاده سازی کردکه به بازکردن مرورگر نیازی نداشته باشد. نمودار همچنان تعاملی است. پکیج پلاتلی پایتون برای ایجاد، دستکاری و ارائه اشکال گرافیکی (مانند نمودارها، نمودارها و نقشه ها) وجود داردکه توسط ساختارهای داد های که به آنها شکل ( figure ) نیز گفته میشود، استفاده میشوند.نکته: توصیه ی ما این است که برای شروع پلاتلی، از ماژول سطح بالای plotly.express که به عنوان Plotly Express نیز شناخته می شود، و از توابع پایتونی استفاده میکند، استفاده کنید. ما نیز برای شروع توابع سادهای را برای شما پیاده سازی میکنیم و بعدا به طور حرفه ای تر وارد جزییات میشویم.سر بسته Plotly Express  (px) : نمودار line : میتوان هر شکل پلاتلی که توسط Plotly Express پیاده سازی شده را توسط متد show نمایش داد و یابا متد print خروجی JSON آنرا چاپ نمود.import plotly.express as px fig = px.line(x=[&amp;quota&amp;quot,&amp;quotb&amp;quot,&amp;quotc&amp;quot], y=[1,3,2], title=&amp;quotsample figure&amp;quot) print(fig) fig.show()این px خروجی هایی از جنس کلاس px graph_object دارند که از این طریق میتوان نمودار های سریع ولی با دقت بالا درست کرد.خروجی:Figure({ &#039;data&#039;: [{&#039;hovertemplate&#039;: &#039;x=%{x}&lt;br&gt;y=%{y}&lt;extra&gt;&lt;/extra&gt;&#039;, &#039;legendgroup&#039;: &#039;&#039;,&#039;line&#039;: {&#039;color&#039;: &#039;#636efa&#039;, &#039;dash&#039;: &#039;solid&#039;},&#039;mode&#039;: &#039;lines&#039;,&#039;name&#039;: &#039;&#039;,&#039;orientation&#039;: &#039;v&#039;,&#039;showlegend&#039;: False,&#039;type&#039;: &#039;scatter&#039;,&#039;x&#039;: [a, b, c],&#039;xaxis&#039;: &#039;x&#039;,&#039;y&#039;: array([1, 3, 2], dtype=int64),&#039;yaxis&#039;: &#039;y&#039;}],&#039;layout&#039;: {&#039;legend&#039;: {&#039;tracegroupgap&#039;: 0},&#039;template&#039;: &#039;...&#039;,&#039;title&#039;: {&#039;text&#039;: &#039;sample figure&#039;},&#039;xaxis&#039;: {&#039;anchor&#039;: &#039;y&#039;, &#039;domain&#039;: [0.0, 1.0], &#039;title&#039;: {&#039;text&#039;: &#039;x&#039;}},&#039;yaxis&#039;: {&#039;anchor&#039;: &#039;x&#039;, &#039;domain&#039;: [0.0, 1.0], &#039;title&#039;: {&#039;text&#039;: &#039;y&#039;}}}})شکل:حال به شکل های مختلفی میتوان از این ماژول برای رسم نمودار استفاده کرد.برای مثال نمودار scatter تعریف میکنیم:df = px.data.iris() fig = px.scatter(df, x=&amp;quotsepal_width&amp;quot, y=&amp;quotsepal_length&amp;quot, color=&amp;quotspecies&amp;quot, title=&amp;quotA Plotly Express Figure&amp;quot) fig.show()همانگونه که مشاهده میکنید، برای نام لجند مثال ازآرگمان color استفاده کردیم.خروجی:توجه داشته باشید که تمام این خروجی ها صرفا عکس از نمودار نمیباشد و به تعاملات کاربر عمل میکند.پارامتر px اما جدی تر :خب تا اینجا کمی با پلاتلی اکسپرس آشنا شدیم، حال میخواهیم وارد جزئیات آن شویم:ماژول plotly.express (معمولاً به صورت px وارد میشود) حاوی توابعی است که میتوانند کل فیگورها را دریک زمان ایجاد کنند و به آن Plotly Express یا PX میگویند. پلاتلی اکسپرس بخشی داخلی از کتابخانهنموداری است و نقطه شروع توصیه شده برای ایجاد اکثر فیگورها است. هر تابع پلاتلی اکسپرس به صورت داخلیاز اشیاء گراف استفاده می کند و نمونه ای از plotly.graph_objects.Figure را برمی گرداند. در طولمستندات پلاتلی، شما در بالای هر صفحه ی قابل اجرا روش ساخت هرشکل در پلاتلی اکسپرس را خواهید دید،که به دنبال آن بخشی در مورد نحوه استفاده از اشیاء نمودار برای ساختن شکل های مشابه وجود دارد. هر شکلیکه در یک فراخوانی تابع با پلاتلی اکسپرس ایجاد می شود، می تواند تنها با استفاده از اشیاء نمودار ایجاد شود ،اما با کد بین 5 تا 100 برابر بیشتر.پلاتلی اکسپرس بیش ا ز 30 تابع را برای ایجاد انواع مختلف ارائه می ده د. این API برای این توابع به گونه ایبا دقت طراحی شده که تا ح د امکان سازگار و آسان برای یادگیری باش د و تغییر بین اشکال از نمودار پراکندگیبه نمودار میله ای، به هیستوگرام یا به نمودار خورشیدی در طول یک داده کاوی را آسان می کن د.از بین این سی تابع، تعدادی را در این آموزش، توضیح میدهیم:• Basics: scatter, line, area, bar• Part-of-Whole: pie• 1D Distributions: histogram, boxتعدادی از این توابع قبلا مثال زده شده و برای بقیه، نیز مثالهایی آورده میشود.ادامه مطلب را در قسمت بعدی بخوانید ...انجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیرمحسن براهیمیابوالفضل شیشه گرعلیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 11:41:59 +0330</pubDate>
            </item>
                    <item>
                <title>ماشین لرنینگ در زندگی روزمره</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%84%D8%B1%D9%86%DB%8C%D9%86%DA%AF-%D8%AF%D8%B1-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-%D8%B1%D9%88%D8%B2%D9%85%D8%B1%D9%87-lxpjypptzved</link>
                <description>امروزه اینترنت و شبکه های اجتماعی نقش پررنگی در فعالیت های روزمره ما دارد که در حقیقت بخشی از آن نتیجه استفاده از هوش مصنوعی و یادگیری ماشین است که نشان دهنده اهمیت یادگیری ماشین در فعالیت های مختلف ماست در این مقاله میخواهیم چند مورد از کاربرد های رایج یادگیری ماشین را معرفی کنیم.1)تشخیص چهره:اغلب ما برای به اشتراک گذاشتنن افکار و احساساتمان با دیگران از شبکه های اجتماعی مختلفی استفاده میکنیم ،که یادگیری ماشین کاربرد گسترده ای در این شبکه های اجتماعی دارد برای مثال در برنامه فیسبوک زمانی که ما عکسی برای دوستان خود آپلود میکنیم ، به طور خودکار با نام هایمان تگ میشویم . این بر اساس پروژه فیسبوک به نام deep Face (چهره عمیق)است که می تواند با دقت 97.25 درصد، تصاویر متعلق به یک شخص را تشخیص داده ، صفحات مختلف را به هم ربط داده و استنتاج های مورد نیاز فیسبوک را در اختیار قرار دهد. پروژه deep Face می تواند 4000 جز از ظرایف صورت انسانی را مورد بررسی قرار داده و تصاویر را تشخیص دهد این ویژگی یکی از اشکال محبوب کاربرد تکنولوژی یادگیری ماشین در شبکه های اجتماعی است.2)تشخیص گفتار:ممکن است درمواردی پیش آمده باشد که امکان تایپ کردن نداشته باشیم،در این جور مواقع گوگل آپشنی دارد به نام جستجوی صوتی . در این تکنولوژی از الگوریتم های یادگیری ماشین استفاده شده است در واقع تشخیص گفتار این گونه عمل میکند که دستورالعمل های صوتی را به دستورالعمل های متنی تبدیل کند.در حال حاضر برنامه های Google assistant, Siri, Cortana,  Alexa از این تکنولوژی استفاده میکنند.3)پیش بینی ترافیک:زمانی که ما به شهر جدیدی سفر می کنیم که به مسیر های آن آشنایی نداریم شاید ساعت ها زمان ببرد که مسیر درست را پیدا کنیم و به مقصد برسیم و حتی زمان زیادی را در ترافیک بگذرانیم در حالی که مسیر های بهتری برای رسیدن به مقصدمان هست.تا قبل از سال 2017 پروژه Google Map صرفا یک نقشه آنلاین از تمام جهان بود اما بعد از این سال، گوگل قابلیت های یادگیری ماشین و یادگیری عمیق را به این سرویس خود اضافه کرده . الگوریتم های یادگیری ماشین، به نرم افزارها کمک می کنند تا نام خیابان ها و شماره خانه ها را از روی عکس هایی که از آن خیابان ها گرفته شده، استخراج کنند تا نتایج جستجو دقیق تر شونند.با مجموع 80 میلیارد تصویری که از خیابان ها در دیتابیس گوگل موجود می باشد، این استخراج نام ها با دقت 84.2 درصد در حال انجام است.این برنامه همچنین  به کمک مکان خودرو و میانگین زمان در روز های گذشته شرایط ترافیکی را پیش بینی میکند.هرشخصی که از Google Map استفاده میکند به عملکرد بهتر برنامه کمک میکند زیرا برنامه اطلاعات را از کاربر میگیرد و برای بهبود عملکرد به پایگاه داده خود میفرستد.4)خرید هوشمند و تبلیغات پیشنهادی:امروزه به دلیل تنوع زیاد محصولات و خرید آسان تر و در زمان کمتر خرید اینترنتی گزینه بهتری برای اغلب افراد است ، شرکت های معتبری مثل Amazon که از بزرگ ترین فروشگاه های آنلاین آمریکا است پیوسته کاربران را در معرض یادگیری ماشین قرار میدهد.هنگامی که ما محصولی را خریداری میکنیم الگوریتم های یادگیری ماشین علاقه های مارا یاد میگیرند و اطلاعاتی را جمع آوری میکنند سپس بر اساس آن محصولاتی جدید که با سلیقه ما همخوانی دارد را پیشنهاد میدهند.این الگوریتم های یادگیری ماشین در موارد مشابه مثل سایت Netflix با توجه به جستجو های ما علاقه مارا درک میکنند و بر مبنای آن فیلم های مشابه را به ما پیشنهاد میکند5)خودرو های خودران:اگر شما هم نیم‌‌نگاهی به پیشرفت‌های بشر در زمینۀ خودروسازی و هوشمندسازی آن‌ها بیاندازید، احتمالاً خودروهای خودران خیلی هم عجیب و غریب به‌نظر نمی‌رسد. اصلی ترین بخشی که در عملکرد این خودرو ها میدرخشد، هوش مصنوعی آن هاست که بر مبنای الگوریتم های یادگیری ماشین است .تسلا محبوب ترین شرکت خودرو سازی  در حال کار بر روی خودرو های خودران است و در سال های اخیر سرمایه گذاری زیادی در این زمینه کرده است،آن ها از متد های  یادگیری بدون نظارت برای آموزش مدل های ماشین برای تشخیص افراد و اشیاء در حین رانندگی استفاده می کنند که احتمال تصادف را کاهش میدهد.6)دستیار شخصی مجازی: ما دستیارهای شخصی مجازی مختلفی مانند Google assistant, Alexa, Cortana, Siri داریم. همانطور که از نام آن پیداست، آنها به ما در یافتن اطلاعات با استفاده از آموزش صوتی کمک می کنند. این دستیارها فقط با دستورالعمل‌های صوتی مانند پخش موسیقی، تماس با کسی، باز کردن ایمیل، برنامه‌ریزی یک قرار و غیره می‌توانند به روش‌های مختلف به ما کمک کنند. این دستیار، دستورالعمل‌های صوتی ما را ضبط می‌کند، آن را روی سرور در یک ابر ارسال می‌کند، و آن را با استفاده از الگوریتم‌های ML رمزگشایی می‌کند و مطابق با آن عمل می‌کند.مایکروسافت، گوگل، اپل و آمازون با دستیاران هوشمند صوتی خود یعنی کورتانا ، دستیار گوگل Google assistant ، سیری و الکسا در حال رقابت با هم هستند. و در آزمایشی که به تازگی توسط Loup Ventures انجام شده است، دستیار گوگل قادر به پاسخ‌گویی صحیح به بیشترین سوالات بوده است.7)معاملات بازار سهام:یادگیری ماشین اطلاعات پیشرفته ای از بازار را ارائه می دهد. با استفاده از یادگیری ماشین ، مدیران صندوق ، تغییرات بازار را زودتر از زمان مدل های سرمایه گذاری سنتی ، شناسایی می کنند. در بازار سهام، همیشه خطر بالا و پایین رفتن سهام وجود دارد، بنابراین از شبکه عصبی حافظه کوتاه مدت ماشین لرنینگ برای پیش بینی روند بازار سهام استفاده می شود. موسسات بزرگی مثل JPMorgan ، Bank of America و Morgan Stanley مشاوران سرمایه گذاری خودکار را توسعه داده اند. این ها با فناوری یادگیری ماشین کار می‌کنند8)تشخیص پزشکی:ماشین لرنینگ در زمینه پزشکی نقش یک ابر ذهن که درون آن افکار هزاران پزشک قرار می‌گیرد ومی‌تواند به بهترین شکل یک بیماری را پیش‌بینی کند را ایفا می‌کند.یکی از مهم‌ترین اهدافی که در پزشکی وجود دارد، زمینه پیش‌بینی کردن بیماری‌ها و تشخیص‌های بسیار خاص و با اهمیت می‌باشد. مثل تشخیص سرطان و درمان آن!مدل‌های ماشین لرنینگ، تشکیل شده از مجموعه‌ای از دیتاهایی می‌باشد که در گذشته بر روی بیماران تست شده است و در حال حاضر جمع آوری شده و در دسترس می‌باشد.علاوه بر آن فناوری پزشکی بسیار سریع در حال رشد است و قادر به ساخت مدل های سه بعدی است که می تواند موقعیت دقیق ضایعات را در مغز پیش بینی کند. این به یافتن تومورهای مغزی و سایر بیماری های مرتبط با مغز به راحتی کمک می کند.9)ترجمه خودکار زبان:همه ما گوگلترنسلیت(google Translate) را می شناسیم و عاشق آن هستیم، وب سایتی که می تواند فورا چیزی بین ۱۰۰ زبان مختلف بشر را ترجمه کند؛ مانند یک جادو! تکنولوژی پشت این برنامه الگوریتم های  ماشین لرنینگ است.مترجم گوگل می‌تواند از یک زبان به زبان دیگر ترجمه کند، حتی اگر دو زبان انتخاب شده پیش از این توسط سیستم انتخاب نشده باشند. برای مثال یک سیستم چند زبانه را تصور کنید که برای ترجمه از زبان ژاپنی به انگلیسی و یا کره‌ای به انگلیسی آموزش دیده است. این سیستم علی‌رغم اینکه هیچ‌گونه آموزشی درباره ترجمه از کره‌ای به ژاپنی دریافت نکرده، با استفاده از آموخته‌های قبلی خود این کار را انجام می‌دهد.همه این ها نشان میدهد که هوش مصنوعی در ساده ترین فعالیت های روزانه ما دخیل است. این ها تنها  مثال های ساده ای از کاربرد های ماشین لرنینگ در اطراف ماست که همگی ابزاری برای ارتقا سطح زندگی انسان است.دامنه کاربرد های ماشین لرنینگ بسیار وسیع است برای مثال در تجارت صنعت و  پزشکی بسیار کاربرد دارد و همچنان در حال رشد است.منابع :https://www.javatpoint.com/applications-of-machine-learninghttps://www.simplilearn.com/tutorials/machine-learning-tutorial/machine-learning-applicationshttps://searchenterpriseai.techtarget.com/feature/10-common-uses-for-machine-learning-applications-in-businesshttps://www.salesforce.com/eu/blog/2020/06/real-world-examples-of-machine-learning.htmlعاطفه علی محمدی </description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Mon, 13 Dec 2021 23:03:45 +0330</pubDate>
            </item>
                    <item>
                <title>ماشینی که فکر کند؟</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%A7%D8%B4%DB%8C%D9%86%DB%8C-%DA%A9%D9%87-%D9%81%DA%A9%D8%B1-%DA%A9%D9%86%D8%AF-zh599vyju6o9</link>
                <description>چه چیزی یک ماشین را هوشمند میکند ؟ امروزه یادگیری ماشینی آنقدر فراگیر شده است که احتمالاً روزانه ده ها بار ناخوداگاه از آن استفاده می کنید.در دهه گذشته، به لطف یادگیری ماشینی ، استفاده ازاین فناوری در قالب ماشین های خودران، تشخیص گفتار ، جستجوی بهینه وب و درک بهتر ژنوم انسان ممکن شده است . بسیاری از محققان بر این باورند که این علم بهترین راه برای پیشرفت هوش مصنوعی به سطح هوش انسانی است . در این مقاله به معرفی یادگیری ماشین می پردازیم .قبل از پرداختن به تعریف این دانش ، بهتر است نگاه عمیق تری به پیش زمینه های آن داشته باشیم .بر خلاف ظاهر ، این فناوری دارای ریشه های قدیمی در علوم گوناگون میباشد. از جمله آن ها  :· علوم آمار· نظریه اطلاع· فلسفهیادگیری ماشینی زیرمجموعه ای از هوش مصنوعی است که در آن از الگوریتم های کامپیوتری برای یادگیری به صورت خودکار از داده ها و اطلاعات استفاده می شود. در یادگیری ماشینی، بر خلاف برنامه نویسی سنتی، کامپیوترها به طور صریح برنامه نویسی نمی شوند، بلکه طوری برنامه نویسی میشوند تا بتوانند الگوریتم های خود را به تنهایی تغییر داده و بهبود ببخشند.در سال 1950 ، آلن تورینگ، تست تورینگ  را ایجاد می کند تا تشخیص دهد که آیا یک کامپیوتر هوش واقعی دارد یا خیر. برای قبولی در آزمون، یک کامپیوتر باید بتواند یک انسان را فریب دهد تا باور کند که او نیز انسان است.  تورینگ براساس مشاهدات خود راهی برای آموزش ماشین پیشنهاد داد: درست همانند آموزش به یک کودک، ابتدا باید مقدار زیادی اطلاعات را به او داد . سپس به او بگوییم که با آنها چکار کند. ماشین هم با یافتن الگوهای موجود ، مدلی را طراحی کند .حدود 2 سال بعد، آرتور ساموئل اولین برنامه یادگیری کامپیوتر را نوشت. این برنامه بازی چکرز(checkers) بود، و کامپیوتر آی‌بی‌ام هر چه بیشتر بازی می‌کرد، در این بازی پیشرفت می‌کرد و بررسی می‌کرد که کدام حرکات استراتژی‌های برنده را تشکیل می‌دادند و آن حرکات را در برنامه خود می گنجاند.با مرور زمان شرکت های بیشتری به سمت این فناوری کشیده میشوند . نظیر آمازون،گوگل و مایکروسافت و... . در شکل زیر میتوانید خط زمانی یادگیری ماشین را مشاهده کنید.تکنیک‌های مبتنی بر یادگیری ماشینی در زمینه‌های مختلفی از جمله تشخیص الگو، بینایی کامپیوتر، مهندسی هوافضا، اقتصاد، سرگرمی و زیست‌شناسی محاسباتی تا کاربردهای زیست‌پزشکی و پزشکی با موفقیت استفاده شده‌ است.با پیشرفت دانش یادگیری ماشین، استفاده از آن در زمینه های مختلف بازتاب های مختلفی را شاهد بوده است. با به وجود آمدن فناوری دیپ فیک(deep fake) ، افراد مختلف میتوانند سلایق و تمایلات شخصی خود را در آن دخیل کنند. مانند استفاده از چهره مشاهیر برای انتقال یک پیام.برخی نیز آن را عاملی برای پیشرفت بشر در عرصه های مختلف نظیر پزشکی و داروسازی میدانند.شما چه فکری میکنید؟منابعhttps://link.springer.com/https://www.forbes.com/https://www.sas.com/https://www.ibm.com/https://amerandish.com/https://blog.faradars.org/انجمن هوش مصنوعی دانشگاه اصفهانعلی اکبر احراری </description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 16:04:00 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه seaborn (بخش سوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-atrm5smk6jwq</link>
                <description>نمودار های BarPlotنمودار های Bar plot یا نمودار میله ای رابطه بین یک متغیر عددی و یک متغیر طبقه ای را نشان میدهد. این تابع پارامتر های مختلفی میگیرد .دو تا از مهم ترین پارامتر های این تابع :متغیر محور افقی نمودار : Xمتغیر محور عمودی نمودار : Yplt.figure(figsize=(20,7))sns.barplot(x=pokemon[&#039;Type 1&#039;], y= pokemon[&#039;Attack&#039;])plt.show()مرتب سازی نمودار براساس یک متغیر به کمک متد groupby():plt.figure(figsize=(20,7))order = pokemon.groupby([&#039;Type 1&#039;]).mean().sort_values(&#039;Defense&#039; , ascending = False).indexsns.barplot(x=pokemon[&#039;Type 1&#039;], y= pokemon[&#039;Defense&#039;] , order=order)plt.show()در نمونه ی بالا، نمودار براساس متغیرDefence  به طور نزولی مرتب شده است.نمودار count یک مورد خاص برای نمودار میله ای زمانی است که می خواهید تعداد مشاهدات هر دسته را به جای محاسبه آماری برای متغیر دوم نمایش دهید.titanic = sns.load_dataset(&amp;quottitanic&amp;quot) #load datasetsns.catplot(x=&amp;quotdeck&amp;quot, kind=&amp;quotcount&amp;quot, palette=&amp;quotch:.25&amp;quot, data=titanic)نمودار مدل های رگرسیون (regression):در کتابخانه ی Seaborn می توانیم در نمودارهای scatter خط رگرسیون رسم کنیم جهت بررسی مجدد قدرت رابطه ی بین داده ها و یا پیدا کردن بهترین خط  که با داده ها مطابقت دارد:نمودار RegPlotتابع RegPlot() با گرفتن متغیر های x و y مدل رگرسیون را روی آن اعمال می کند مانند زیر:tips = sns.load_dataset(&amp;quottips&amp;quot) #load datasetsns.regplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, data=tips)نمودار ResidPlotبرای بررسی اینکه آیا مدل رگرسیون ساده می تواند برای دیتاست به کار گرفته شده مناسب باشد یا خیر از دستور زیر استفاده می کنیم:anscombe = sns.load_dataset(&amp;quotanscombe&amp;quot) #load datasetsns.residplot(x=&amp;quotx&amp;quot, y=&amp;quoty&amp;quot, data=anscombe.query(&amp;quotdataset == &#039;I&#039;&amp;quot), scatter_kws={&amp;quots&amp;quot: 80})به دلیل اینکه مقادیر به صورت پراکنده اطراف خط y=0 قرار گرفته اند، مدل رگرسیون ساده مناسب برای این دیتاست می باشد.sns.residplot(x=&amp;quotx&amp;quot, y=&amp;quoty&amp;quot, data=anscombe.query(&amp;quotdataset == &#039;II&#039;&amp;quot), scatter_kws={&amp;quots&amp;quot: 80})در این حالت مقادیر اطراف خط y=0 پراکنده نیستند و نظم خاصی دارند، پس میتوان گفت رگرسیون ساده مناسب این دیتاست نیست.نمودار LmPlotبرای بررسی وضعیت داده مورد نظر نسبت به سایر متغیر ها از دستور زیر کمک می گیریم:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, data=tips)همچنین می توان به شکل زیر وضعیت یک متغیر را مشروط به متغیر یا متغیر های دیگر بررسی کنیم:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, col=&amp;quottime&amp;quot, data=tips)پارامتر های row, col متغیرهایی که زیرمجموعه ها را برای ترسیم در وجوه مختلف تعریف می کنند:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, col=&amp;quottime&amp;quot, row=&amp;quotsex&amp;quot, data=tips)برای تغییر اندازه ی نمودار های regplot() همانند آنچه که در کتابخانه ی matplotlib.pyplot انجام می دادیم، عمل میکنیم:f, ax = plt.subplots(figsize=(5, 6))sns.regplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, data=tips, ax=ax)ولی برای تغییر اندازه ی نمودار های lmplot() مسیر متفاوت است و طبق قطعه کد زیر پیش می رویم:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, col=&amp;quotday&amp;quot, data=tips, col_wrap=2, height=3)منبع آموزش : وبسایت کتابخانه ی Seabornو در پایان باید بگم که سعی کردیم تو این مقاله بهترین و کاربردی ترین توابع کتابخانه ی سیبورن را براتون بگیم که بتونید این کتابخونه رو خیلی سریع و با کیفیت بالا یادش بگیرید ولی چیزی که میتونه شما رو بیشتر موفق کنه، اینه که تمرین کنید!موفق باشید!انجمن هوش مصنوعی دانشگاه اصفهان محمد جعفرپور مریم سادات صفوی دانیال توکلی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 13:29:19 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه seaborn (بخش دوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-bjjiecxyfq6n</link>
                <description>نمودارهای توزیعی (Distributions):یکی از مهم ترین گام ها برای تحلیل داده ها، بررسی گستردگی و پراکندگی مقادیر است. نمودار های گوناگونی برای این کار وجود دارند که مهمترین آنها نمودار هیستوگرام (Histogram) می باشد:نمودار های DisPlotابتدا دیتاست &quot;penguins&quot; را اضافه می کنیم، سپس گستردگی مقادیر ستون &quot;flipper_length_mm&quot; را بررسی می کنیم:penguins = sns.load_dataset(&amp;quotpenguins&amp;quot) #load datasetsns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kde=False)زمانیکه مقدار فراپارامتر kde برابرTrue باشد، علاوه برنمودارهیستوگرام ، یک نمودار چگالی نیز خواهیم داشت:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kde=True)وقتیکه شما پراکندگی داده ای را بررسی کردید گام بعدی این است که از خود بپرسید وضعیت این داده نسبت به سایر مقادیر دیتاست چگونه است؟ برای پاسخ دادن به این سوال طبق دستور زیر عمل می کنیم:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, hue=&amp;quotsex&amp;quot)همانطور که قبلا گفتیم فراپارامتر hue بسیار کاربردی است.برای نمونه، در مثال بالا به کمک فراپارامتر hue گستردگی ستون &quot;flipper_length_mm&quot; را نسبت به جنسیت بررسی کردیم.همچنین می توان نمودار بالا را به صورت زیر تجزیه کنیم:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, col=&amp;quotsex&amp;quot)به نمودار های چگالی بالاتر اشاره ای شد، برای رسم نمودار های kde به شکل زیر عمل می کنیم:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kind=&amp;quotkde&amp;quot)تمام فراپارامتر هایی که در بالا آموزش داده شد برای kdeplot ها نیز بکار می روند:sns.displot(penguins,x=&amp;quotflipper_length_mm&amp;quot,hue=&amp;quotsex&amp;quot,kind=&amp;quotkde&amp;quot,fill=True)نمودار تابع توزیع تجربی (ecdf) یکی از ابزار های بررسی گستردگی داده است و هر نقطه در این نمودار روی محور عمودی بیانگر درصد مشاهداتی روی محور عمودی است که از آن نقطه کمتر هستند:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kind=&amp;quotecdf&amp;quot)برای نمونه برآورد تابع توزیع تجربی در نقطه ی 210 حدودا برابر 70 درصد می باشد.sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, hue=&amp;quotspecies&amp;quot, kind=&amp;quotecdf&amp;quot)نکته مهم نمودارهای تابع توزیع تجربی این است که به دلیل وجود روند افزایشی برای مقایسه چند ویژگی مناسب تر است.در مثال های بالا فقط توزیع های تک متغیره و البته تک متغیره ی مشروط به متغیر دوم در نظر گرفته شده اند، ولی از این پس پراکندگی های دو متغیره مورد بررسی قرار می گیرند:sns.displot(penguins, x=&amp;quotbill_length_mm&amp;quot, y=&amp;quotbill_depth_mm&amp;quot, cbar=True)sns.displot(penguins, x=&amp;quotbill_length_mm&amp;quot, y=&amp;quotbill_depth_mm&amp;quot, kind=&amp;quotkde&amp;quot)نمودار های PairPlot, PairGridهمچنین می توان به جای تمرکز بر یک رابطه، از یک رویکرد برای تجسم پراکندگی تک متغیره ی همه ی مقادیر در یک مجموعه استفاده کرد:sns.pairplot(penguins)می توان در نمونه بالا نمودار های بالا مثلثی و پایین مثلثی و قطر مثلث این مجموعه را تغییر داد، مانند زیر:g = sns.PairGrid(penguins)g.map_upper(sns.histplot)g.map_lower(sns.kdeplot, fill=True)g.map_diag(sns.histplot, kde=True)نمودارهای دسته بندی :(Categorical)دسته بندی اطلاعات از تاثیرگذاری بالایی در تحلیل داده ها و تصمیم گیری براساس آنها برخوردار است بنابراین کتابخانه ی Seaborn این امکان را به ما میدهد که داده های خود را طبقه بندی کنیم:نمودار های CatPlotنمودار های cat plot دسترسی به چندین تابع در سطح محور را فراهم میکند. که رابطه بین یک متغیر عددی و یک یا چند متغیر طبقه ای را نمایش میدهد.به وسیله متد figure() ابعاد نمودار را تعیین می کنیم. (به کمک کتابخانه ی matplotlib.pyplot):pokemon = pd.read_csv(&amp;quotpokemon.csv&amp;quot) #load datasetplt.figure(figsize=(10,6))sns.catplot(y = &amp;quotType 1&amp;quot, kind = &amp;quotcount&amp;quot,data = pokemon)plt.show()برای تجسم وضعیت یک متغیر نسبت به متغیر دیگر در چند نمودار از col استفاده می کنیم:plt.figure(figsize=(20,20))sns.catplot(x=&#039;Generation&#039; , y=&#039;Defense&#039; , data=pokemon , col=&amp;quotLegendary&amp;quot)متد jitter بزرگی جیتر را کنترل میکند یا آن را به طور کلی غیر فعال میکند:sns.catplot(x=&amp;quotGeneration&amp;quot, y=&amp;quotDefense&amp;quot, jitter=False, data=pokemon)همانطور که پیش از این گفتیم به کمک hue می توانیم نموداری تک متغیره مشروط به متغیری دیگر داشت:tips = pd.read_csv(&amp;quottips.csv&amp;quot) #load datasetsns.catplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quotday&amp;quot, hue=&amp;quottime&amp;quot, kind=&amp;quotswarm&amp;quot, data=tips)نمودار box سه مقدار چارک توزیع را به همراه مقادیر شدید نشان میدهد.sns.catplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, kind=&amp;quotbox&amp;quot, data=tips)نمودار boxen شبیه نمودار جعبه ای است اما برای نمایش اطلاعات بیشتر در مورد شکل توزیع بهینه شده است:diamonds = sns.load_dataset(&amp;quotdiamonds&amp;quot) #load datasetsns.catplot(x=&amp;quotcolor&amp;quot, y=&amp;quotprice&amp;quot, kind=&amp;quotboxen&amp;quot,data=diamonds.sort_values(&amp;quotcolor&amp;quot))به کمک violin میتوانید از تخمین تراکم هسته برای نشان دادن توزیع اساسی که از آن نقطه نمونه برداری میشود, استفاده کنید:plt.figure(figsize=(7,7))sns.catplot(x=&amp;quotGeneration&amp;quot, y = &amp;quotSpeed&amp;quot, kind=&amp;quotviolin&amp;quot, data=pokemon)plt.show()فراپارامتر split ولیون ها را زمانی که فراپارامتر hueدو سطح دارد، میتوان تقسیم کرد بصورتی که میتواند استفاده بهینه تر از فضا را امکان پذیر کند:sns.catplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, hue=&amp;quotsex&amp;quot, kind=&amp;quotviolin&amp;quot, split=True, data=tips)ترکیب swarmplot با نمودار جعبه ای یا ویولن برای نمایش هر مشاهده همراه با خلاصه ای از توزیع میتواند مفید باشد.g = sns.catplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, kind=&amp;quotviolin&amp;quot, inner=None, data=tips)sns.swarmplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, color=&amp;quotk&amp;quot, size=3, data=tips, ax=g.ax)ادامه مطلب را در قسمت بعد بخوانید ...انجمن هوش مصنوعی دانشگاه اصفهان  محمد جعفرپور مریم سادات صفوی دانیال توکلی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 13:05:29 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه seaborn (بخش اول)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-vevfruzcq4ne</link>
                <description>کتابخانه seaborn چیست؟کتابخانه seaborn یک کتابخانه تجسم داده پایتون بر اساس matplotlibاست. این یک رابط سطح بالا برای ترسیم گرافیک های آماری جذاب و آموزنده فراهم می کند.چرا کتابخانه seaborn را انتخاب کنیم؟1) به شما کمک میکند داده های خود را کشف و درک کنید.2) توابع رسم آن بر روی قاب های داده و آرایه های حاوی مجموعه داده های کامل عمل می کند.3) رابط برنامه نویسی اپلیکیشن(API)اعلانی مبتنی بر مجموعه داده به شما این امکان را می دهد که به جای تمرکز روی جزئیات نحوه ترسیم آنها، روی عناصر مختلف نمودارهای خود تمرکز کنید.نصب seaborn1) به کمک دستور pippip install seaborn1) با استفاده از محیط Anacondaconda install seabornبرای اطلاعات بیشترروی این لینک کلیک کنید.بعد از نصب آن میتوانید آن را با کلمه کلیدی importبه برنامه ی خود اضافه کنید و برای سهولت کار در فراخوانی آن میتوان برای کتابخانه یک اسم جایگزین انتخاب کرد:import seaborn as snsشروع کار با seabornدر ابتدا باید کتابخانه های مورد نظر خود را به برنامه اضافه کنیم و از نام اختصاری آنها در برنامه ی خود استفاده می کنیم:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltنمودار های روابط آماری:همانطور که میدانید پیدا کردن الگوی بین داده ها و بررسی روابط آماری میان مقادیر یک دیتاست منجر به درک درست و تحلیلی مناسب می شود.تابع RelPlot:این تابع دسترسی به چندین تابع مختلف در سطح محور را فراهم می کند که رابطه بین دو متغیر را با نگاشت معنایی زیر مجموعه ها نشان می دهد.tips = sns.load_dataset(&amp;quottips&amp;quot) #load datasetsns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, data=tips)به کمک فراپارامتر hue می توانیم وضعیت یک متغیر را نسبت به یک متغیر دیگر در یک نمودار تجسم کنیم. (این فراپارامتر در این کتابخانه بسیار مهم و کاربردیست و در ادامه زیاد استفاده می شود):sns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, data=tips)به کمک فراپارامتر Size ، می توان مقادیر را بر اساس اندازه گروه بندی کنیم:sns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, size=&amp;quotsize&amp;quot, data=tips)اندازه ی عناصر نمودار بالا را به کمک Sizes می توانیم تغییر دهیم:sns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, size=&amp;quotsize&amp;quot, sizes=(15, 200), data=tips)فراپارامتر kind نوعی طرح برای ترسیم بوده که دارای دو گزینه ی line و scatter  است:df = pd.DataFrame(dict(time=np.arange(500), value=np.random.randn(500).cumsum()))g = sns.relplot(x=&amp;quottime&amp;quot, y=&amp;quotvalue&amp;quot, kind=&amp;quotline&amp;quot, data=df)g.figure.autofmt_xdate()از آنجایی که همیشه نمودار relplot، y را به عنوان تابعی از x رسم می کند اگر فراپارامتر Sort برابر False قرار گیرد مقادیر ما نامرتب روی نمودار پیاده سازی می شوند:df = pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0), columns=[&amp;quotx&amp;quot, &amp;quoty&amp;quot])sns.relplot(x=&amp;quotx&amp;quot, y=&amp;quoty&amp;quot, sort=False, kind=&amp;quotline&amp;quot, data=df)فراپارامتر markers شی تعیین کننده نحوه رسم نشانگرها برای سطوح مختلف متغیر سبک است. تنظیم روی True از نشانگرهای پیش‌فرض استفاده می‌کند، یا می‌توانید فهرستی از نشانگرها یا سطوح نگاشت فرهنگ لغت متغیر سبک را به نشانگرها منتقل کنید. با تنظیم روی False خطوط بدون نشانگر ترسیم می شود.فراپارامتر dashes شی تعیین کننده نحوه رسم خطوط برای سطوح مختلف متغیر سبک است. تنظیم روی True  از کدهای خط تیره پیش‌فرض استفاده می‌کند، یا می‌توانید فهرستی از کدهای خط تیره یا سطوح نگاشت فرهنگ لغت متغیر سبک را به کدهای خط تیره منتقل کنید. تنظیم روی False از خطوط ثابت برای همه زیر مجموعه ها استفاده می کندfmri = sns.load_dataset(&amp;quotfmri&amp;quot) #load datasetsns.relplot(x=&amp;quottimepoint&amp;quot, y=&amp;quotsignal&amp;quot, hue=&amp;quotregion&amp;quot, style=&amp;quotevent&amp;quot, dashes=False, markers=True, kind=&amp;quotline&amp;quot, data=fmri)پارامتر های row, col متغیرهایی که زیرمجموعه ها را برای ترسیم در وجوه مختلف تعریف می کنند:sns.relplot(x=&amp;quottimepoint&amp;quot, y=&amp;quotsignal&amp;quot, hue=&amp;quotsubject&amp;quot,col=&amp;quotregion&amp;quot, row=&amp;quotevent&amp;quot, height=3, kind=&amp;quotline&amp;quot, estimator=None, data=fmri)متغیر aspect نسبت ابعاد هر وجه به صورت ارتفاع * عرض هر وجه را به اینچ می دهد:sns.relplot(x=&amp;quottimepoint&amp;quot, y=&amp;quotsignal&amp;quot, hue=&amp;quotevent&amp;quot, style=&amp;quotevent&amp;quot, col=&amp;quotsubject&amp;quot, col_wrap=5, height=3, aspect=.75, linewidth=2.5, kind=&amp;quotline&amp;quot, data=fmri.query(&amp;quotregion == &#039;frontal&#039;&amp;quot))تابع Cubehelix Paletteتابع cubehelix_palette() یک نقشه رنگی با روشنایی خطی کاهش (یا افزایش) تولید می کند.این تابع به کاربر کنترل بیشتری بر ظاهر پالت می دهد و مجموعه ای از پیش فرض های متفاوت دارد:dots = sns.load_dataset(&amp;quotdots&amp;quot).query(&amp;quotalign == &#039;dots&#039;&amp;quot)palette = sns.cubehelix_palette(light=.8, n_colors=6)sns.relplot(x=&amp;quottime&amp;quot, y=&amp;quotfiring_rate&amp;quot, hue=&amp;quotcoherence&amp;quot, style=&amp;quotchoice&amp;quot, palette=palette, kind=&amp;quotline&amp;quot, data=dots)ادامه مطلب را در قسمت بعد بخوانید ...انجمن هوش مصنوعی دانشگاه اصفهانمحمد جعفرپورمریم سادات صفویدانیال توکلی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 12:16:30 +0330</pubDate>
            </item>
                    <item>
                <title>شاخه های تحول قرن</title>
                <link>https://virgool.io/pubUIAI/%D8%B4%D8%A7%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D9%88%D9%84-%D9%82%D8%B1%D9%86-zxqhcngfwl3k</link>
                <description>1.منطق فازی منطق دیجیتال تنها دوحالت دارد که این دوحالت، درست و نادرست هستند اما در واقعیت هیچ چیز مطلقا سیاه یا سفید نیست بلکه خاکستری است و دراینجا مبحث منطق فازی به میان می‌آید. تصور کنید که از شما پرسیده‌شود آب سرد است یا گرم و نتوانید ازهیچ کلمه‌ی دیگری برای توصیف دمای آب استفاده کنید. واضح است که این محدودیت، کیفیت و دقت پاسخ شما را پایین می‌آورد در واقع، شاید این محدودیت در چنین موضوعی از اهمیت بالایی برخوردار نباشد اما مسئله این است که در بسیاری از موضوعات زندگی این محدودیت قابل چشم‌پوشی نیست. برای مثال، حسگرهای خودکار کنترل فاصله با ماشین جلویی در خودروهای امروزی، استفاده گسترده‌ای ازمنطق فازی دارند. درنتیجه منطق فازی، در شرایطی که به دلیل محدودیت، امکان تشخیص درست یا نادرست بودن موضوعی را نداریم با انعطاف‌پذیری در استدلال هایش، شرایط را برای ما آسان تر کرده و نتیجه را پیش‌بینی می‌کند.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/rln_kZbYaWc‌ 2. شبکه عصبییکی از شاخه‌های هوش‌مصنوعی که الگوریتم‌های مربوط به آن از ساختار مغز ما انسان‌ها ایده‌برداری شده‌است، شبکه عصبی است که اطلاعات و داده‌ها را ازمحیط دریافت کرده و برای خواندن آن‌ها تلاش می‌کند و سپس خروجی را به ما می‌دهند. انجام این کارممکن است ماه‌ها یا حتی سال‌ها طول بکشد و مثال‌هایی از آن برنامه‌هایی هستند که سن فرد را براساس صورت وی تشخیص می‌دهند که این فرایند شامل جداسازی چهره فرد ازمحیط و استفاده از الگوها و الگوریتم‌ها برای تشخیص سن فرد است. این شاخه هنوز قدم‌های اول مسیر طولانی خود را طی می‌کند و شرکت‌هایی همچون گوگل و آمازون، به فعالیت دراین حوزه برای تشخیص مدل‌های مختلف مشغول‌اند.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/CMrHM8a3hqw3. پردازش زبان طبیعیحتما شما نیزدقت کرده‏اید که معمولا ارتباط با کسی‌ که با ما زبان مشترکی دارد آسان‌تر از ارتباط با افرادی است که زبان متفاوتی با یکدیگر داریم.یکی دیگر از شاخه‌های هوش‌مصنوعی، پردازش زبان طبیعی است که در این حوزه، مهندسان تلاش می‌کنند که ارتباط انسان و ماشین را با ساختن و طراحی ماشین‌هایی که زبان انسان را متوجه شوند در زمینه‌های گفتاری و نوشتاری بهبود ببخشند. برای مثال از نمونه‌های آن، میتوان به تماس ها در بستر اینترنت و دستیار هوشمند گوگل اشاره کرد که انسان نیستند و درواقع ماشین‌ها کارهای این‌چنینی را انجام می‌دهند و این‌کار همان پردازش وفهمیدن حرفای ما درست بر مبنای پردازش زبان طبیعی است. ما در زندگی روزانه، از این قابلیت با‌رها و بارها استفاده می‌کنیم از تلفظ کلمات زبان‌های دیگر در گوگل گرفته تا حتی تشخیص زیرپا گذاشتن قانون کپی رایت.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/CMrHM8a3hqw4. سیستم های خبره این شاخه از هوش‌مصنوعی مبتنی بر تقلید از هوش انسان است و به حل مسائل دشوار می‌پردازد، اولین ماشین پیشرفته در سال 1970 ساخته شد و توانست یک مسئله را با دانش و اطلاعات پیشین خود حل کند و اساس کار این ماشین ها به جای کدنویسی این ماشین‌های خبره در پزشکی، بانکداری و تجزیه و تحلیل کاربرد دارند.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/1lr2oIXtQlA5. ربات‌هابرای دیدن کلیپ کامل روی همین متن کلیک کنیداین شاخه، شناخته‌شده‌ترین شاخه هوش‌مصنوعی در دنیاست، از ربات‌ها در جاهای مختلفی استفاده می‌شود، از بیمارستان ها گرفته تا کارخانه‌جات مختلف. ربات ها توسط انسان ها به کارگرفته می‌شوند تا کارهای تکراری و روزمره انسان را انجام دهند و باری را از روی دوش نیروی انسانی بردارند. به نظر می‌رسد با پیشرفت علم و فناوری، روزی فراخواهد رسید که دیگر در کارخانه ها، بیمارستان‌ها و سایر مکان‌ها از نیروی انسانی استفاده نشود که این موضوع به دلیل محدودیت‌های نیروی کار از جمله خستگی و فرسودگی و... موضوع دور از انتظاری نیست. واقعیت نیزهمین است که ربات‌ها نه خسته می‌شوند و نه اشتباه و خطا دارند و دلایلی از این نوع برای قانع کردن رئیسان، برای استفاده ازاین تحول کافی است.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/SZRAGpo3wy06. یادگیری ماشینعنوان این شاخه ازهوش مصنوعی ممکن است کمی گیج کننده و سوال برانگیز باشد و درذهن خود این سوال را مرور کنید که آیا ماشین‌هایی که بتوانند آموزش ببیند و فکرکنند در دنیایی غیراز دنیای فیلم های تخیلی وجود دارند؟پاسخ این سوال، هم بله و هم خیر است. بشر هنوز موفق به ساخت ماشین‌ها و ربات‌هایی که بتوانند همانند او فکر کنند نشده‌است و هوش خدادایی ما هنوز جایگزین و جانشینی در جهان پیدا نکرده‌است اما بشر توانسته‌است ماشین‌ها را تحت تعلیم خود قراردهند، که در ادامه به توضیح بیشتر آن خواهم پرداخت.در عصر کنونی که حجم دیتاها و اطلاعات موجود، ثانیه به ثانیه در حال افزایش است اگر قرار باشد بررسی هر یک از این داده هارا انسان ها انجام دهند شاید بررسی آن ها به هزاران هزار انسان نیاز داشته باشد و صرفا نوشتن برنامه‌هایی برای یک نمونه خاص که قابل تعمیم به موارد مشابه نباشند از کارایی ماشین ها خواهد‌کاست، در این حوزه هوش مصنوعی انسان ها به ماشین ها آموزش می‌دهند تا از یک برنامه خاص نه تنها برای یک نمونه خاص، بلکه برای طیف وسیعی از سوالات و مشکلات مشابه استفاده‌کنند و یا به عبارت دیگر به پیش‌بینی بپردازد.در سال‌های اخیر تکنولوژی ماشین های بدون سرنشین،از این شاخه از هوش‌مصنوعی جان گرفته است.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/f_uwKZIAeM0به‌نظر می‌رسد هریک از این شاخه ها هنوز در ابتدای راه هستند و خبرهای شگفت‌انگیز و باورنکردنی ای را در سال های آتی به گوش ما خواهند‌رساند. خبرهایی از زندگی در دنیای متاورس و... شما دوست‌دارید چه خبری را بشنوید؟منابعhttps://www.analyticssteps.c https://www.softwaretestinghelp.com/what-is-artificial-intelligence/amp/om/blogs/6-major-branches-artificial-intelligence-aihttps://www.javatpoint.com/expert-systems-in-artificial-intelligencehttps://amerandish.com/%D8%B4%D8%A7%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C/</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Thu, 02 Dec 2021 00:26:00 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Matplotlib (قسمت سوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-matplotlib-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-cdikmponmkkm</link>
                <description> شخصی سازی در نمودار دایره­ای:برای زیباتر شدن نمودار، ما از سه کیبورد آرگیومنت کاربردی استفاده می کنیم. کلمه  shodow که به معنی سایه هست، برای نمودار سایه میسازد. پس شدو را معرفی و مقدار آن را True میگذاریمplt.pie(slices,
  labels = Genres,
  colors = [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;, &#039;pink&#039;],
  shadow = True)برای جدا کردن قسمتی از نمودار و معمولاً برای فوکوس کردن و بررسی بخش ویژه ای از نمودار از دستور explode استفاده میشود. به این ترتیب که explode را معرفی و به صورت آرایه ای، ژانری را که میخواهیم از بقیه جدا شده باشد را با عددی بزرگتر از صفر و بخش هایی که میخواهیم بدون تغییر باشند را با عدد صفر مقداردهی میکنیم. مثلاً میخواهیم بخش درام را جدا کنیم. از آنجا که اولین نمودار در قسمت slices نمودار درام استپس اولین نمودار که مقدار 0.3 برای آن میگذاریم. کد زیر بیانگر همین مسئله است:plt.pie(slices,
  labels= Genres,
  colors= [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;, &#039;pink&#039;],
  explode= [0.3, 0, 0, 0],
  shadow= True)تنظیم استایل با استفاده از Cycler:در این مفهوم اولین سوالی که به ذهن ما میرسد این است که cycler  چیست؟سایکلر ها آرایه هایی حلقوی هستند که یک pointer(اشاره گر) به خانه صفرم آن آرایه دارند که هر بار یکی از خانه های این آرایه را میخوانیم pointer به خانه بعدی آن اشاره میکند و در این حلقه به صورت پی در پی جلو میرود و پس از خواندن خانه آخر pointerدوباره به خانه صفرم اشاره میکند.کاربرد cycler در matplotlib :در matplotlib برای ظاهر سازی نمودار ها که شامل رنگ و استایل نمودار میشود دو cycler  پیش فرض وجود دارد که یکی از آنها برای رنگ پیش فرض است و یکی برای استایل نمودار به صورت پیش فرض میباشد.این گونه که مثلا اگر یک نمودار داشته باشیم رنگ آن قرمز و اگر دو نمودار داشته باشیم رنگ پیش فرض آنها طبق خانه اول و دوم cycler  رنگ ها قرمز و سبز هستند واگر سه نمودار داشته باشیم رنگ نمودار سوم آبی است و... . cycler استایل نمودارها، برای مثال برای نمودار خطی، فقط یک خط ساده و با ضخامت پیشفرض است.حال ما میتوانیم با تعریف دو cycler  دلخواه برای رنگ و استایل نمودار ها این cycler  ها پیش فرض را برای نمودار های خود تغییر دهیم.حال یک نمودار تعریف میکنیم تا بتوانیم با تعریف دو cycler  رنگ و استایل برای آن تغییر را مشاهده کنیم.سپس بعد از تعریف  cycler  ها cyclerدلخواه خود را به تابع matplotlib.pyplot.rc()میدهیم تا به صورت پیش فرض قرار گیرد.این مثال دو API مختلف را نشان می دهد:1. تنظیم پارامتر rc که چرخه ویژگی پیش فرض را مشخص می کند. این روی تمام محورهای بعدی تأثیر می گذارد (اما نه محورهایی که قبلاً ایجاد شده اند).2.تنظیم چرخه ویژگی برای یک جفت محورابتدا کتابخانه های مورد نیاز را وارد و داده­های خود را تهیه میکنیم:from cycler import cycler
 import numpy as np
 import matplotlib.pyplot as plt
 
    x = np.linspace(0, 2 * np.pi, 50)
    offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
    yy = np.transpose([np.sin(x + phi) for phi in offsets])بنابراین yy[:,] منحنی سینوس آفست i-ام را به شما می دهد. بیایید prop_cycle پیش فرض را با استفاده از matplotlib.pyplot.rc()تنظیم کنیم. با اضافه کردن دو سایکلر با هم، یک سایکلر رنگ و یک سایکلر استایل خط را با هم ترکیب می‌کنیم.default_cycler = (cycler(color=[&#039;r&#039;, &#039;g&#039;, &#039;b&#039;, &#039;y&#039;]) +
  cycler(linestyle=[&#039;-&#039;, &#039;--&#039;, &#039;:&#039;, &#039;-.&#039;]))
plt.rc(&#039;lines&#039;, linewidth=4)
plt.rc(&#039;axes&#039;, prop_cycle=default_cycler)custom_cycler = (cycler(color=[&#039;c&#039;,
                 &#039;m&#039;, &#039;y&#039;, &#039;k&#039;]) +
                 cycler(lw=[1, 2, 3, 
                 4]))

fig, (ax0, ax1) = plt.subplots(nrows=2)

ax0.plot(yy)

ax0.set_title(&#039;Set default color cycle to rgby&#039;)

ax1.set_prop_cycle(custom_cycler)

ax1.plot(yy)

ax1.set_title(&#039;Set axes color cycle to cmyk&#039;)

fig.subplots_adjust(hspace=0.3)
plt.show()حالا یک شکل با دو نمودار (محور جداگانه)، یکی روی دیگری ایجاد می کنیم. در نمودار اول، با cycler پیش فرض رسم می کنیم. در نمودار دوم، prop_cycle را با استفاده از mpl.axes.Axes.set_prop_cycle() تنظیم می کنیم، که فقط prop_cycle را برای این نمونه matplotlib.axes.Axes تنظیم می کند. ما از چرخه‌کننده دوم استفاده خواهیم کرد که چرخه‌کننده رنگ و چرخش‌کننده پهنای خط را ترکیب می‌کند.Legend:همان راهنمای نمودار ها هستند و نمودار ها را توضیح مدهند و توصیف میکنند و اطلاعاتی در مورد نمودار ها به ما میدهند. که توسط تابع legend() در دسترس ما قرار میگیرند.Legend entry:برای کار با legend  ها ما نیاز داریم چند تعریف مرتبط با این legend ها را بدانیم:Legend key:به نشانگر طرح دار یا رنگ استفاده شده در سمت چپ label ،key میگوییم.Legend label:متنی یا برچسبی که نمودار مربوط به خود را توصیف میکند.Legend handle:شیئی  که برای ایجاد یک legend entry  استفاده میشود که با استفاده از آنها label ها را کنترل میکنیم.th = np.linspace(0, 2*np.pi, 128)

th = np.linspace(0, 2*np.pi, 128) 

plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)plt.set_title(&#039;No Legend&#039;, color=&#039;C0&#039;)
 یک قطعه کد بدون legend:حال اینبار با استفاده از تابع legend  میخواهیم برای این نمودار legend بگذاریم.تابع legend() در matplotlib به 3 شکل میتوان آن را صدا زد.1) تابع legend() بدون آرگمان ورودی2) تابع legend(label) همراه با یک آرگمان ورودی ،که این آرگمان ورودی باید label  باشد.3) تابع legend(handle , label) همراه با دو آرگمان ورودی، که ورودی اول باید handle باشد و ورودی دوم تابع باید label باشد.برای ادامه کار این سه شکل استفاده از تابع legend() را پیاده سازی میکنیم.1. تابع legend() بدون آرگمان ورودی :در این شکل صدا زدن تابع ما در قطعه کد قبل باید label  هر نمودار را در تابع plot() مشخص کنیم.و سپس وقتی تابع legend() را صدا میزنیم وlegend  ها در کوشه سمت چپ پایین نمودار نمایش داده میشوند.th = np.linspace(0, 2*np.pi, 128) 

plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)plt.set_title(&#039;With Legend&#039;, color=&#039;C0&#039;)plt.legend()2. پیش از صدا زدن legend نیازی به نام گذاری محور ها نیست. میتوان آنها را در متد لجند در قالب یک آرایه، به ترتیب، تعریف کرد.تابع legend() به ترتیب صدا زدن تابع plot() این label ها را به نمودار های آنها نسبت میدهد و خروجی مانند قبل میشود.th = np.linspace(0, 2*np.pi, 128) 

plt.plot(th, np.cos(th), &#039;C1&#039;)
plt.plot(th, np.sin(th), &#039;C2&#039;)plt.set_title(&#039;With Legend&#039;, color=&#039;C0&#039;)plt.legend([&#039;C1&#039;, &#039;C2&#039;])3)در صدا زدن تابع legend() همراه با دو ورودی ما از handle ها برای ایجاد تناظر بین label ها و نمودار ها کمک میگیریم.به صورتی که برای هر نمودار یک handle  تعریف میکنیم و بعد داخل تابع legend() به ترتیب نام بردن handle ها labelهای مربوط به آنها را می آوریم .به line1 و line2 ،handle گوییم.در این جا تابعlegend() بین line1 و squares و همچنین بین line2و cubes تناظر برقرار میکند. خروجی تابع مثل قبل میشود.تعیین مکان legend:برای تعیین مکان قرارگیری legend ها از کلمه کلیدی loc استفاده میکنیم.میتوانیم داخل تابع legend به صورت یک ورودی با استفاده از کلمه کلیدی loc  مکان قرارگیری را مشخص کنیم.مکان پیش فرض تابع legend گوشه پایین سمت راست است.مثلا اگر بخواهیم مکان قرار گیری آن را چپ بالا قرار دهیم به شکل زیر عمل میکنیم.th = np.linspace(0, 2*np.pi, 128)

line1, = plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

line2, = plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)

plt.title(&#039;With Legend&#039;, color=&#039;C0&#039;)

plt.legend([line1, line2], [&#039;C1&#039;, &#039;C2&#039;], loc=&#039;upper left&#039;)اعداد و کلمات رزرو شده برای تعیین موقعیت legend ها به صورت زیر است:با استفاده از کلمه کلیدی bbox_to_anchor میتوان با یک دقت خوب مکان قرارگیری legend ها را تعیین کرد.th = np.linspace(0, 2*np.pi, 128)

line1, = plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

line2, = plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)

plt.title(&#039;With Legend&#039;, color=&#039;C0&#039;)

plt.legend([line1, line2], [&#039;C1&#039;, &#039;C2&#039;])

th = np.linspace(0, 2*np.pi, 128)

line1, = plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

line2, = plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)

plt.title(&#039;With Legend&#039;, color=&#039;C0&#039;)

plt.legend([line1, line2], [&#039;C1&#039;, &#039;C2&#039;], loc=&#039;upper left&#039;)با استفاده از subplot_mosaic میتوان دو لجند را جدا از هم قرار داد.fig, ax_dict = plt.subplot_mosaic([[&#039;top&#039;, &#039;top&#039;], [&#039;bottom&#039;, &#039;BLANK&#039;]],

                                  empty_sentinel=&amp;quotBLANK&amp;quot)

ax_dict[&#039;top&#039;].plot([1, 2, 3], label=&amp;quottest1&amp;quot)

ax_dict[&#039;top&#039;].plot([3, 2, 1], label=&amp;quottest2&amp;quot)

ax_dict[&#039;top&#039;].legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=&#039;lower left&#039;,

                      ncol=2, mode=&amp;quotexpand&amp;quot, borderaxespad=0.)

ax_dict[&#039;bottom&#039;].plot([1, 2, 3], label=&amp;quottest1&amp;quot)

ax_dict[&#039;bottom&#039;].plot([3, 2, 1], label=&amp;quottest2&amp;quot)

ax_dict[&#039;bottom&#039;].legend(bbox_to_anchor=(1.05, 1),

                         loc=&#039;upper left&#039;, borderaxespad=0.)

plt.show()چند legend  برای یک axes مشابه:گاهی ما برای یک axes میخواهیم دو بار یا بیشتر تابع legend() را صدا بزنیم چون برای مثال برای هر entry میخواهیم legendجداگانه داشته باشیم و و به طور جداگانه تابع legend() را صدا بزنیم.برای این کار باید آنها را جداگانه به صورت دستی به axes  اضافه کنیم.fig, ax = plt.subplots()

line1, = ax.plot([1, 2, 3], label=&amp;quotLine 1&amp;quot, linestyle=&#039;--&#039;)

line2, = ax.plot([3, 2, 1], label=&amp;quotLine 2&amp;quot, linewidth=4)



first_legend = ax.legend(handles=[line1], loc=&#039;upper right&#039;)

ax.add_artist(first_legend)

ax.legend(handles=[line2], loc=&#039;lower right&#039;)



plt.show()در اینجا ما ابتدا یک legend  برای line1 تعریف کرده سپس آن را به صورت دستی به axes اضافه کردیم.و سپس یک legendجداگانه برای line2 میسازیم.اگر ما به صورت دستی legend  قدیمی تر(خط اول ) را به axes اضافه نکرده بودیم legend  قدیمی تر حذف میشد و legend  جدید تر اعمال میشد.در پایان برای کسب دانش بیشتر در زمینه ی matplotlib تمرین، دیدن فیلم های آموزشی و خواندن مطالب سایت matplotlib.org میتونه بسیار تاثیرگذار باشه، ما سعی کردیم که چکیده ­ مطالب رو به بهترین شکلی که در توانمون بود براتون جمع آوری کنیم؛ باشد که پله­ های برای شروع یادگیری هوش مصنوعی باشه.از طرف انجمن هوش مصنوعی بهتون خسته نباشید میگم و تو دوره های بعدی منتظرتون هستیم.موفق باشین ?انجمن هوش مصنوعی دانشگاه اصفهانابولفضل شیشه­ گرامیرمحسن براهیمیعلیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 01 Dec 2021 23:29:26 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Matplotlib (قسمت دوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-matplotlib-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-ebiyqtizkdnf</link>
                <description>Pyplot اما دقیق تر :رسم نمودار دو بعدی:اول از همه باید متغیرهایی برای محور x و y تعریف کنیم .برای نمایش نمودار از دستور show به صورت روبرو استفاده میکنیم.import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4] , [2, 4, 6, 8])
plt.show()قرار دادن نام برای نمودار، خطوط و محورها:برای نامگذاری تابع از دستور title و برای نامگذاری محور های ایکس و وای به ترتیب از دستور های xlabel و ylabel استفاده میکنیم:plt.xlabel(&#039;X&#039;)
plt.ylabel(&#039;Y&#039;)
plt.title(&#039;Title&#039;)در نمودار های چندخطی برای نامگذاری خطوط از دستور زیر استفاده میکنیم:x = [1, 2, 3]

y = [4, 5, 6]

x2 = [2, 3, 4]

y2 = [4 , 5, 6]

plt.plot(x, y, label = &#039;First line&#039;)

plt.plot(x2, y2, label = &#039;Second line&#039;)

plt.legend()همانطور که میبینید x ,y و x2,y2 را به صورت آرایه های سه تایی از اعداد معرفی کرده ایم. سپس دو نمودار با استفاده از پلات ساخته ایم. دستور لیبل برای نامگذاری بخش های مختلف نمودار استفاده میشود که در این جا اولین نمودار را با لیبل First line و دومین نمودار را با لیبل Second line معرفی کرده­ایم. دستور legend نیز برای نمایش نامگذاری نمودار هاست و اگر نوشته نشود، نامگذاری های لیبل ها هم نمایش داده نمیشوند.رسم نمودار میله ای یا بارچارت:نمودار های میله ای معمولاً برای مقایسه استفاده میشوند و گروه هایی از داده ها را با هم مقایسه می کنیم ولی برای بررسی توزیع داده ها از نمودار های هیستوگرام استفاده میکنیم که معمولاً به شکل محدوده ای از اعداد هستند.x = [1, 2, 3, 4]

y = [6, 9, 2, 12]

plt.bar(x, y, label = &#039;First bar chart&#039;)رسم نمودار هیستوگرام:در مثال ما میخواهیم ببینیم رنج قد گروهی از مردم در چه حدودی است. برای همین در آرایه ای به نام قد، طول قد افراد را ذخیره کرده ایم.height = [152, 183, 205, 175, 178, 167, 192, 169, 173, 181 ,145]

bins = [140, 150, 160, 170, 180, 190, 200, 210]

plt.hist(height, bins, histtype = &#039;bar&#039;, rwidth = 0.7)در قسمت بعد باید گروه بندی محور ایکس ها را انجام دهیم. در این گروه بندی ما دسته هایی با طول 10 سانتی متر از 140 سانتی متر تا 210 سانتی متر ساخته ایم. در histtype باید مدل نمودار هیستوگرام را مشخص کنیم که ما بصورت میله ای مقداردهی کرده ایم. در قسمت آخر نیز باید عرض نمودار را مقداردهی کنیم که برای خوانایی بیشتر پیشنهاد میشود از اعداد کمتر از 1 استفاده کنید.رسم نمودار نقطه ای:x = [2, 5, 4.5, 3, 5.25]

y = [1 , 4, 3, 2.5, 7.75]

plt.scatter (x, y, label = &#039;points&#039;)

plt.legend()نمودار های نقطه ای معمولاٌ ارتباط بین دو متغیر ایکس و وای و یا توزیع یک داده را نشان میدهند.با تغییر استرینگ label میتوان نام مشخص شده در راهنمای نمودار را عوض کرد.رسم نمودار های توده ای:نمودار های توده ای برای بررسی پارامتر هایی که حداقل یک متغیر مشترک دارند استفاده میشنود. مثلاٌ میخواهیم ببینیم که در پنج ماه اول سال ما چه هزینه هایی برای خوردن،کار و هزینه های روزمره کرده ایم.در ابتدا ما آرایه هایی 5 تایی از ماه، خوردن، کار و هزینه های روزمره میسازیم که به ترتیب در آن ها شماره ماه ها از یک تا پنج، هزینه های خوردن در پنج ماه اول سال، هزینه های کاری در پنج ماه اول سال و هزینه های روزمره در پنج ماه اول سال را قرار میدهیم. برای مقداردهی لجند نمودار برای خوردن رنگ قرمز، برای کار رنگ آبی و برای هزینه های روزمره رنگ سبز را انتخاب میکنیم.دقت کنید که ترتیب رنگ ها در بخش بعدی نیز باید به همین صورت باشد وگرنه بین لجند و نمودار رسم شده شاهد تناقض هستیم!در نهایت برای ساخت نمودار توده ای از دستور stackplot استفاده میکنیم، به این صورت که اولین آرایه که همان ماه است به صورت پیشفرض برای محور ایکس و آرایه های بعدی نمودار ما را تشکیل میدهند. از آن جا که رنگ پیشفرض همه نمودار ها با هم یکی است، باید آن ها را رنگ دهی کنیم. برای تغییر رنگ نمودار ها از دستور colors استفاده میکنیم و رنگ ها را به ترتیب وارد میکنیم.این نوع نمودار ها در مسائلی مانند BMI (شاخص توده­ی بدنی) بسیار کاربرد دارد.months = [1, 2 ,3 ,4 ,5]

eating = [200, 175, 350, 300, 420]

work = [500, 450, 700, 680, 380]

daily_payments = [120, 200, 85, 190, 310]

plt.plot([], [], color = &#039;red&#039;, label = &#039;eating&#039;)

plt.plot([], [], color = &#039;blue&#039;, label = &#039;work&#039;)

plt.plot([], [], color = &#039;green&#039;, label = &#039;daily_payments&#039;)

plt.stackplot(months, eating, work, daily_payments, colors = [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;])

plt.legend()رسم نمودار های دایره ای:نمودار های دایره ای معمولاً برای نمایش اندازه نسبی بسیاری از چیزها استفاده میشود مانند:نوع ماشینی که مردم سوار می‌شوندتعداد مشتری‌های یک مغازه در روز‌های مختلفاین که کدام نوع موسیقی طرفدار بیشتری دارد.در مثالی که ما زده ایم، ژانر فیلم های مورد علاقه جوانان بین 25 تا 30 سال را بررسی کرده ایم. در ابتدا آرایه ای برای ژانر های انتخابی ساخته ایم و چهار ژانر مختلف درام، اکشن، کمدی و رومانتیک را در آن مقداردهی کرده ایم. در قسمت بعدی آرایه ای برای ثبت نظرسنجی ساخته ایم و به ترتیب 16، 21، 43 و 20 نفر به فیلم های درام، اکشن، کمدی و رومانتیک رأی داده اند.برای ساخت نمودار دایره ای از کلیدواژه pieاستفاده میکنیم. این نام به دلیل شباهت نمودار دایره ای به شیرینی پای انتخاب شده است. طبق معمول باید ایکس و وای تعریف کنیم که برای ا یکس ها نتایج نظرسنجی و برای وای ها ژانر ها را میگذاریم. از آنجا که نمودار های دایره ای لااقل دو بخش متفاوت دارد، باید رنگ نمودار ها را تغییر دهیم و برای این کار از کلیدواژه colorsاستفاده میکنیم و به ترتیبی که ژانر ها را معرفی کردیم، برای آن ها رنگ میگذاریم.Genres = [&#039;Drama&#039;, &#039;Action&#039;, &#039;Comedy&#039;, &#039;Romance&#039;]  
slices = [16, 21, 43, 20]  
plt.pie(slices, labels = Genres, colors = [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;, &#039;pink&#039;])  
plt.show()استایل و شخصی سازی اشکال (Figure Style):استایل کلی:در matplotlib میتوان از طریق متد style شکل کلی نمودار را تغییر داد به گونه ای که تم نمودار (پس زمینه، رنگ خطوط و...) عوض میشوند.در صفحه ی بعد تمام استایل های موجود در لیست matplotlib.pyplot.style.available نمایش داده میشوداین استایل ها را میتوان توسط متد اصلی برنامه قرار داد:plt.style.available
[&#039;Solarize_Light2&#039;,
&#039;default&#039;
&#039;_classic_test_patch&#039;,
&#039;bmh&#039;,
&#039;classic&#039;,
&#039;dark_background&#039;,
&#039;fast&#039;,
&#039;fivethirtyeight&#039;,
&#039;ggplot&#039;,
&#039;grayscale&#039;,
&#039;seaborn&#039;
&#039;seaborn-bright&#039;,
&#039;seaborn-colorblind&#039;,
&#039;seaborn-dark&#039;,
&#039;seaborn-dark-palette&#039;,
&#039;seaborn-darkgrid&#039;,
&#039;seaborn-deep&#039;,
&#039;seaborn-muted&#039;,
&#039;seaborn-notebook&#039;,
&#039;seaborn-paper&#039;,
&#039;seaborn-pastel&#039;,
&#039;seaborn-poster&#039;,
&#039;seaborn-talk&#039;,
&#039;seaborn-ticks&#039;,
&#039;seaborn-white&#039;,
&#039;seaborn-whitegrid&#039;]plt.style.use(&#039;default&#039;)
plt.plot([1, 4, 5, 7])plt.style.use(&#039;seaborn&#039;)
plt.plot([1, 4, 5, 7])با تعیین استایل، تمامی نمودار هایی که در برنامه هستند، به استایل مورد نظر تغییر شکل میدهند.برای تغییر استایل فقط برای یک نمودار میتوان از کلمه کلیدی with استفاده نمود:x = np.sin(np.linspace(0, 2 * np.pi))
with plt.style.context(&#039;seaborn&#039;):
         plt.plot(x)
در این صورت، با متد contextمتحوای استایل را به شکل نسبت میدهیم.رنگ محورها:در پایپلات میتوان رنگ محور ها را حین ایجاد آنها تغییر داد: استفاده از کد هگز رنگ مورد نظر حرف اول برخی رنگ های اصلی نام مخصوص X11/CSS4 رنگبرای اطلاعات بیشتر میتوانید به جدول راهنما مراجعه کنید.نوع محور ها:نمودار lineدارای استایل های مختلفی است که میتوانید با آرگیومنت linestyle=’’ آنها را تعیین کنید:در این نمودار همچنین میتوان از آرگیومنت marker=’ ‘ برای علامت گذاری نقاط تعیین شده استفاده کرد:این علامت گذاری ها برای نمودار scatter نیز قابل استفاده است. نمونه ی همه­ی این استایل ها در ادامه، نشانه ی انعطاف پذیری بالای این کتابخانه است.در مثالی که قبلا در مورد نمودار نقطه¬ای زده بودیم دیدیم که استایل پیشفرض از نقطه¬های آبی برای نمایش نمودار استفاده کرده است. حال نوع و رنگ نقاط را میخواهیم به دلخواه تغییر دهیم:x = [2, 5, 4.5, 3, 5.25]

y = [1 , 4, 3, 2.5, 7.75]

plt.scatter (x, y, label = &#039;points&#039;, color = &#039;red&#039;, s = 15, marker = &#039;*&#039;)

plt.legend()فعلیقبلینکته: برای استایل های نمودار خطی میتوان از پنج مورد کوتاه شده استفاده نمود و نیازی به نام کامل آنها نیست. (&#x27;-&#x27;, &#x27;--&#x27;, &#x27;:&#x27;, &#x27;-.&#x27;, &#x27;.&#x27;)نکته: در نمودار های خطی میتوان رنگ، نوع خط و نوع علامت (marker) را در یک رشته خلاصه کرد.x = np.sin(np.linspace(0, 2 * np.pi))

    with plt.style.context(&#039;dark_background&#039;):

    plt.plot(x, color=&#039;r&#039;, linestyle=&#039;-&#039;, marker=&#039;o&#039;)x = np.sin(np.linspace(0, 2 * np.pi))

    with plt.style.context(&#039;dark_background&#039;):

    plt.plot(x)مثال زیر نشاندهنده ی روش خلاصه کردن مشخصات خط است به نحوی که ابتدا حرف اول رنگ، سپس نوع خط و در آخر علامت آن می آید.x = np.sin(np.linspace(0, 2 * np.pi))

with plt.style.context(&#039;dark_background&#039;):

    plt.plot(x, &#039;r-o&#039;)مثال چرخه ی تولید یک نمودار:?برای نمودارهایی که توضیحات محور های افقی یا عمودی آنها بزرگ است، احتمال دارد که نوشته ها تو در تو و نا خوانا باشند. به مثال زیر توجه کنید:fig, ax = plt.subplots()

ax.barh(group_names, group_data)مپ رو به رو را در دو متغیر تعریف شده ریخته و سپس نمودار را رسم میکنیم:import numpy as np
import matplotlib.pyplot as plt
data = {&#039;Barton LLC&#039;: 109438.50,

        &#039;Frami, Hills and Schmidt&#039;: 103569.59,

        &#039;Fritsch, Russel and Anderson&#039;: 112214.71,

        &#039;Jerde-Hilpert&#039;: 112591.43,

        &#039;Keeling LLC&#039;: 100934.30,

        &#039;Koepp Ltd&#039;: 103660.54,

        &#039;Kulas Inc&#039;: 137351.96,

        &#039;Trantow-Barrows&#039;: 123381.38,

        &#039;White-Trantow&#039;: 135841.99,

        &#039;Will LLC&#039;: 104437.60}

group_data = list(data.values())

group_names = list(data.keys())

group_mean = np.mean(group_data);همانگونه که مشاهده میشود، اسامی شرکت ها کامل نیوفتاده اند و اعداد محور افقی با فاصله ی کمی از هم قرار دارند. به همین خاطر میخواهیم اعداد محور افقی را به صورت مورب قرار دهیم تا یکی از مشکلات برطرف شود.fig, ax = plt.subplots()

ax.barh(group_names, group_data)

labels = ax.get_xticklabels()

plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)از طریق متد get_xticklabels قصد داریم تا تمامی رفرنس اعداد محور افقی را در متغیر labels قرار دهیم. در خط بعدی نیز، مشخصات مربوطه را وارد و اعداد را چهل و پنج درجه میچرخانیم.در مرحله ی بعدی، از طول اضافی نمودار میکاهیم تا نوشته ها کامل نمایش داده شوند.به همین خاطر از rcParams استفاده میکنیم. دیکشنری rcParams مرجعی کامل، برای کلاس pyplot است که تمام ساختار نمودار ها در آن ذخیرهplt.rcParams.update({&#039;figure.autolayout&#039;: True})
 
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)حال برای زیباسازی بیشتر و ایجاد جزئیات، به برچسب عمودی و افقی نیاز است:fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)
ax.set(xlim=[-10000, 140000], xlabel=&#039;Total Revenue&#039;, ylabel=&#039;Company&#039;,
  title=&#039;Company Revenue&#039;)حال سایز نمودار را تغییر میدهیم:fig, ax = plt.subplots(figsize=(8, 4))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)
ax.set(xlim=[-10000, 140000], xlabel=&#039;Total Revenue&#039;, ylabel=&#039;Company&#039;,
  title=&#039;Company Revenue&#039;)اکنون برای اینکه نمودار برای نمایش عمومی مناسب باشد، باید از تعداد صفرها کاهید. به همین منظور متدی باید تعبیه کرد که هزار و میلیون را به اعداد کوتاه تر تبدیل کند.پس از اضافه کردن این متد، شکل آماده­ی استفاده است.با مقایسه­ی این نمودار اولیه با نتیجه­ی نهایی، تفاوت داده­ی پردازش شده با شکل ساده را میتوان مشاهده کرد.def currency(num, pos):
  if num &gt;= 1e6:
  s = &#039;${:1.1f}M&#039;.format(num*1e-6)
  else:
  s = &#039;${:1.0f}K&#039;.format(num*1e-3)
  return s
fig, ax = plt.subplots(figsize=(6, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)
 
ax.set(xlim=[-10000, 140000], xlabel=&#039;Total Revenue&#039;, ylabel=&#039;Company&#039;,
  title=&#039;Company Revenue&#039;)
ax.xaxis.set_major_formatter(currency)ادامه مطلب را در قسمت بعدی بخوانید...انجمن هوش مصنوعی دانشگاه اصفهانابولفضل شیشه­ گرامیرمحسن براهیمیعلیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Thu, 25 Nov 2021 21:43:01 +0330</pubDate>
            </item>
                    <item>
                <title>تولد یک تحول</title>
                <link>https://virgool.io/pubUIAI/%D8%AA%D9%88%D9%84%D8%AF-%DB%8C%DA%A9-%D8%AA%D8%AD%D9%88%D9%84-xg4trgaq1mg6</link>
                <description>هوش مصنوعی، عبارتی است که این روزها در خبرهای مربوط به تکنولوژی، بیش‌تراز هر موضوع دیگری به چشم می‌خورد. اولین رویارویی ما با هوش‌ مصنوعی از آشنای با ربات ها در فیلم‌ها، شروع شده است، ربات هایی که توانایی‌هایی شبیه به انسان‌ها داشتند،مانند آن‌ها صحبت می‌کردند و فکر می‌کردند. انسان ها سالیان درازی به دنبال خلق موجوداتی شبیه به خود یا حتی قوی‌تر و باهوش‌تر از خود بوده‌اند. امروزه، هوش مصنوعی در زندگی ما نفوذ کرده‌است و در بسیاری از مواقع یکی از آن‌ها را با خود حمل می‌کنیم.اما سوال اینجاست که آیا این تکنولوژی به یک‌باره در زندگی ما متولد شد و یک محتوای جدید یا یک ایده‌ی نو است یا گذشته‌ای پرفرازونشیب داشته‌است؟درسال‌های(1960-1950)، ریاضی‌دانان، دانشمندان و فیلسوفان برجسته‌ای زندگی می‌کردند که علاقه‌ی خاص و ویژه‌ای به تئوری هوشی به غیراز‌‌ هوش انسان‌ها داشتند و این فکر را در سر خود می‌پروراندند. یکی از مشهورترین این ریاضی‌دانان ، آلن تورینگ بود که از او به عنوان پدرهوش مصنوعی جهان یاد می‌شود. آلن تورینگ بریتانیایی، معتقد بود که اگر انسان‌ها این توانایی و مهارت را دارند که فکر کنند و به طور منطقی و براساس داده ها و اطلاعات موجود، تصمیم‌گیری کنند، پس ماشین‌ها نیزامکان این ‌کار را دارند بنابراین، مقاله ای درباب محاسبات ماشینی وهوش نوشت که در آن به بررسی ساخت ماشین‌ها و هوش آن‌ها پرداخت.همه چیز از یک کنفرانس آغاز شد. درآن کنفرانس بود که به هوش مصنوعی جان داده شد و اولین رویارویی عموم مردم با هوش مصنوعی صورت گرفت و این نقطه، درست نقطه شروع بود به طوری که بسیاری نسبت به آن کنجکاو شدند، بسیاری به سرمایه گذاری در این حوزه روی آوردند و از تحقیقات و بررسی‌ها حمایت کردند و دانشمندان نیز شروع به تحقیقات خود در دانشگاه‌‌‌ها و... کردند. همه چیز خوب به‌نظرمی‌رسید که اولین درب بسته در مقابل هوش مصنوعی قرار گرفت و شرایط آن‌طور که انتظار می‌رفت پیش‌نرفت.یکی از دلایل افول هوش مصنوعی در این بازه زمانی، پرهزینه و زمان‌بر بودن آن بود به صورتی که درآن دوره، داشتن کامپیوتر‌های شخصی رایج نبود و تنها‌‌ سازمان‌ها و دانشگاه‌های بزرگ توان خرید و استفاده از این دستگاه‌ها را داشتند. مشکل دیگر این بود که کامپیوترهای آن زمان ، توانایی ذخیره سازی اطلاعات و داده ها را نداشتند و از سرعت پایینی برخوردار بودند. اینجا بود که گمان کردند این‌کار شدنی نیست.درسال های(1987-1980)، سیستم‌های پیشرفته با قابلیت پردازش بالا و ذخیره سازی اطلاعات، جان دوباره‌ای به این تکنولوژی نوپا بخشید و دوباره توجه ها را به خود جلب کرد به‌گونه‌ای که باز هم عده ای به تحقیقات و سرمایه گذاری متمایل شدند. درحالی که به‌نظر می‌رسید مشکلات حل شده‌اند بازهم مشکلات تازه ای بر مسیر هوش مصنوعی سبز شدند. عواملی مانند پرهزینه و زمان‌بر بودن و هم‌چنین نیاز سیستم‌های کامپیوتری به داده‌ها و اطلاعات استاندارد.شاید فکر کنید‌‌‌ که این فرازها و نشیب‌ها همین جا تمام می‌شوند اما در واقع با وجود این‌که شرایط بر ناکارآمدی هوش مصنوعی دلالت می‌کرد اما بازهم ورق برگشت و تکنولوژی دیپ بلو توانست که کاسپاروف استاد بزرگ و شطرنج باز قهار را در یک بازی کامپیوتری شکست دهد.داستان اینجا تمام نمی‌شود و تولد و رشد این تحول قرن اخیر، هنوزهم پراز پستی‌ها و بلندی‌هاست. به‌نظر شما روزی می‌رسد که تمام تصورات محال ما را جامه عمل بپوشاند؟منابع:https://sitn.hms.harvard.edu/https://amerandish.com/انجمن هوش مصنوعی دانشگاه اصفهانفاطمه رضایی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Mon, 22 Nov 2021 22:12:43 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Matplotlib (قسمت اول)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-matplotlib-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-jw4mwoelty8v</link>
                <description>کتابخانه Matplotlib یک کتابخانه جامع برای ایجاد تجسم های ثابت، متحرک و تعاملی در پایتون است. دلیل استفاده از این کتابخانه ایجاد محتوایی ساده تر درک بهتر توسعه دهنده یا کاربر از داده های موجود است. بدین­گونه جداول بزرگ و پیچیده را میتوان به راحتی به اشکال و نمودار های ساده تر تبدیل کرد و اطلاعات بیشتری را از آنها استخراج کرد.چرا matplotlib را انتخاب کنیم؟ساخت· اطلاعات تحلیل شده خود را در چند خط، توسعه و آماده ی انتشار کنید· به راحتی از اشکال تعاملی که قابل به روز شدن هستند استفاده کنیدشخصی سازی· کنترل کامل سبک های خط، ویژگی های فونت، ویژگی های محورها...· استخراج و جاسازی به تعدادی فرمت فایل و محیط های تعاملیگسترش· استفاده از افزونه های سازگار ارائه شده در اینترنت· یادگیری آسان و دسترسی به مطالب آموزشیبه طور کلی میتوان گفت که این کتابخانه به دلیل راحتی و همچنین دقت به جزئیات میتواند گزینه ی مناسبی برای نمایش داده های ساختاری باشد.امکان ایجاد مستقیم نمودار بوسیله ی دیگر کتابخانه ها مثل numpy و pandas که قبلا آموزش داده شده یکی از دلایل جذب توسعه دهندگان به این کتابخانه است که در ادامه نحوه ی ترکیب و استفاده از این کتابخانه ها را توضیح میدهیم.نصب کتابخانه:conda install matplotlibدر محیط conda شما میتوانید با نوشتن این خط دستور، matplotlib را دانلود و نصب نمایید:روش استفاده از این کتابخانه به دوشکل است:الف) استفاده از کلاس pyplotب) استفاده از روش شی گراییاستفاده از هر دو روش آزاد است اما در برخی شرایط نسبت به یکدیگر برتری دارند که بعدا توضیح میدهیم.در این آموزش، از numpy و pandas نیز استفاده شده، پس حتما آنها را از قبل ایمپورت کنید. برای استفاده از نمونه های رندوم از np.random.seed(42) استفاده کنید. دلیل آن هم این است که نمونه های رندوم مورد استفاده همیشه یکسان باشند تا در صورت برخورد به یک مشکل، باز هم بتوانید آنرا بازسازی کنید. این یک مرجع فرهنگ پاپ است! در رمان علمی-تخیلی محبوب داگلاس آدامز در سال 1979، «راهنمای هیچیکر برای کهکشان»، در پایان کتاب، ابرکامپیوتر Deep Thought نشان می‌دهد که پاسخ به سؤال بزرگ «زندگی، جهان و همه چیز» 42 است.از کجا شروع کنیم؟import matplotlib.pyplot     as pltابتدا این کلاس را از کتابخانه اضافه میکنیم وبه اختصار آنرا plt می­نامیم.برای کشیدن هر نمودار ابتدا باید با تعدادی از اصطلاحات آشنا شویم:1. (نقشه) Plot: شکل کلی نمودار رسم شده توسط کد را پلات میگویند. 2.(شکل) Figure: به یک یا مجموعه ای از جنس نمودار گفته میشود. 3. (محور) Ax: زیر مجموعه ی figureمیباشد. برای شروع باید داده­ای برای رسم در اختیار داشته باشیم. برای این امر کلاس هایی برای تولید دیتای رندوم تعبیه شده ولی برای راحتی یادگیری، از داده های کوچک و ساده شروع میکنیم. ابتدا به دو آرایه با طول یکسان نیاز است تا اضافه کنیم.x = np.array([1, 2, 3, 4, 5])y = np.array([1, 2, 7, 13, 2])بهتر است آرایه از جنس نامپای باشدخروجی کد دقیقا به این شکل است. با اضافه کردن «;» به انتهای خط میتوان کد بالای نمودار را نیز حذف کرد.همانگونه که می­بینید درصورتی که نوع و اطلاعات مربوط به ظاهر نمودار در کد ذکر نشود، سایز، نوع نمودار و سایر جزئیات به صورت پیشفرض تعیین می­شوند.انواع مختلف نمودار در ادامه توضیح داده می­شود.هماگونه که توضیح داده شد، برای اینکه بتوانیم به طور دقیق یک نمودار را رسم کنیم به دو کلمه­ ی کلیدی شکل (figure) و ناحیه (axes) نیاز داریم.fig, ax = plt.subplots()

ax.plot(x, y)بدین منظور با تعریف جدیدی به اسم طرح فرعی (subplot) آشنا می­شویم. با این کلمه میتوان جزئیات نمودار را تعیین نمود و توسط متد plot آنرا رسم کرد که خروجی مانند قبل است.به طور کلی شکل نهایی یک نمودار به شکل زیر است:مثال: fig عنوان مخصوص خود را دارد، همچنین زیر مجموعه­های آن هم عنوان جداگانه دارد ولی برچسب ها فقط مخصوص زیر مجموعه است که در ادامه به طور کلی در مورد این دو کلمه توضیح میدهیمجهت مطالعه بیشتر:Figure (شکل):شامل کل شکل است. این شکل تمام محورهای (ax) کوچکتر، تعدادی از آرتیست های ویژه مانند عنوان ها، راهنماهای شکل و غیره... و بوم را ردیابی می‌کند. (در مورد بوم زیاد نگران نباشید، بسیار مهم است زیرا این شی است که در واقع طراحی را انجام می دهد تا طرح شما را به دست بیاورد، اما به عنوان کاربر کم و بیش برای شما نامرئی است). یک شکل می‌تواند شامل هر تعداد محور باشد، اما معمولاً حداقل یک محور دارد.منظور از آرتیست، شی­ای است که می داند چگونه از یک رندر برای نقاشی روی بوم استفاده کند.Axes (محورها):این همان چیزی است که شما به عنوان &quot;نقشه&quot; در نظر می گیرید، این قسمتی از شکل است که با داده های شما سر و کار دارد. یک شکل داده شده می‌تواند حاوی محورهای زیادی باشد، اما یک محئور فقط می‌تواند در یک شکل باشد. محورها شامل دو (یا سه مورد در مورد سه بعدی) Axis است (از تفاوت بین Axes و Axis آگاه باشید (Axis برابر جمع Axesاست)) که از محدودیت های داده مراقبت می کند (محدودیت های داده را می توان از طریق axes نیز کنترل کرد.Axes.set_xlim() و متدهای axes.Axes.set_ylim()). هر محور دارای یک عنوان (ست از طریق set_title())، یک x-label (ست از طریق set_xlabel()) و یک مجموعه برچسب y (از طریق set_ylabel()) است.کلاس Axes و توابع عضو آن نقطه ورود اولیه برای کار با رابط شی گرا هستند.انواع ورودی های مورد نیاز برای رسم نمودار:همه ی توابع نمایش نمودار آرایه های numpyیا numpy masked array را به عنوان ورودی انتظار دارند و آرایه هایی مانند جداول داده­ی pandas الزاما سازگار با این کتابخانه نیستند و بهتر است قبل از انجام عملیات روی این دسته از اطلاعات، آنها را به آرایه های نامپای تبدیل کرد.برای مثال داده های این دیتا فریم پانداس را تبدیل به یک آرایه کردیم که جنس آرایه از جنس numpy.ndarray است.a = pd.DataFrame(
    np.random.rand(4, 5),
    columns = list(&#039;abcde&#039;)
  )
a_asarray = a.valuesمقایسه­ ی pyplot و رابط شی گرا (OO-Interface):همانطور که در بالا ذکر شد، اساساً دو راه برای استفاده از Matplotlib وجود دارد:صریحاً شکل ها و محورها را ایجاد کرده و متدها را بر روی آنها فراخوانی کنید (سبک شی گرا (OO)).برای ایجاد و مدیریت خودکار شکل ها و محورها به پای پلات تکیه و از توابع pyplot برای رسم استفاده کنید.پس برای رابط شی گرایی به کد و خروجی آن دقت کنید:fig, ax = plt.subplots()

    ax.plot(x, x, label=&#039;linear&#039;)

    ax.plot(x, x**2, label=&#039;quadratic&#039;)

    ax.plot(x, x**3, label=&#039;cubic&#039;)

    ax.set_xlabel(&#039;x label&#039;)

    ax.set_ylabel(&#039;y label&#039;)

    ax.set_title(&amp;quotSimple Plot&amp;quot)

    ax.legend()توجه کنید که برای ساخت fig مجبور به استفاده از pyplot.figure هستیم.سه محور با مقادیر x مشابه و yبه توان یک، دو و سه و با نام های ذکر شده ساخته و در سه خط بعدی مشخصات جانبی نمودار را وارد می­کنیم.و Legend نشاندهنده­ی همان راهنمای نمودار است که قبلا نیز به آن اشاره کردیم. تمامی رنگ های انتخاب شده، در تم پیشفرض کتابخانه تعیین شده است.در ادامه به روش pyplot میپردازیم:در این روش داده ها را روی محور های ضمنی (متغیری برای آنها تعبیه نشده) قرار می­دهیم.x = np.linspace(0, 2, 100)
 
plt.plot(x, x, label=&#039;linear&#039;)
 plt.plot(x, x**2, label=&#039;quadratic&#039;) 
 plt.plot(x, x**3, label=&#039;cubic&#039;)
plt.xlabel(&#039;x label&#039;)
plt.ylabel(&#039;y label&#039;)
plt.title(&amp;quotSimple Plot&amp;quot)
plt.legend()همانگونه که مشاهده می­کنید نتیجه ی کار یکسان است بنابراین انتخاب روش در این دسته از نمودار ها آزاد است.علاوه بر این، رویکرد سومی وجود دارد، برای موردی که Matplotlib را در یک برنامه رابط کاربری گرافیکی جاسازی می‌کند، که pyplot را به طور کامل حذف می‌کند، حتی برای ایجاد شکل. ما در اینجا در مورد آن بحث نمی کنیم.اسناد و نمونه‌های Matplotlib از هر دو رویکرد OO و pyplot (که به یک اندازه قدرتمند هستند) استفاده می‌کنند، و شما باید با خیال راحت از هر کدام استفاده کنید (اما، ترجیحاً یکی از آنها را انتخاب کنید و به آن بچسبید، به جای مخلوط کردن آنها). به طور کلی، ما پیشنهاد می‌کنیم که pyplot را به طرح‌های تعاملی محدود کنیم (مثلاً در یک نوت بوک Jupyter)، و برای ترسیم غیرتعاملی، سبک OO را ترجیح دهیم (در توابع و اسکریپت‌هایی که قرار است به عنوان بخشی از پروژه بزرگ‌تر مورد استفاده مجدد قرار گیرند).به دلیل اینکه اشیاء و اجزاء مورد استفاده در pyplot بدون نیاز به تعریف متغیر جدید هستند، در صورتی که بعدا به این قسمت ها نیاز پیدا شد، باید مجددا تعریف شوند.در عوض در رابط شی گرا، وقت بیشتری برای طراحی و کد زنی صرف می­شود و برای پروژه هایی که Matplotlib زیاد مورد استفاده قرار نمیگیرند یا صرفا کوچک هستند، بهینه نیست.ادامه مطلب را در قسمت بعدی بخوانید...انجمن هوش مصنوعی دانشگاه اصفهانابولفضل شیشه­ گرامیرمحسن براهیمیعلیرضا عشقی</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Sat, 20 Nov 2021 19:21:11 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Pandas در پایتون</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-pandas-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-uawnyvxrba2v</link>
                <description>پانداس چیست ؟پانداس(Pandas)، یک کتابخانه متن‌باز است که کارایی بالا، ساختاری با قابلیت استفاده آسان و ابزارهای تحلیل داده برای زبان برنامه نویسی پایتون را فراهم می‌کند. در واقع، می‌توان گفت پانداس یک کتابخانه قدرتمند برای تحلیل، پیش پردازش و بصری سازی داده‌ها است.چرا کتابخانه Pandas ؟این کتابخانه می‌تواند داده‌ها را با بهره‌گیری از ساختارهای Series و  DataFrame که ارائه می‌کند، به قالبی که برای تحلیل داده‌ها مناسب هستند، مبدل سازد.بسته پانداس حاوی چندین متد برای پالایش مناسب داده‌ها است.پانداس دارای ابزارهای گوناگونی برای انجام عملیات ورودی/خروجی است و می‌تواند داده ها را از فرمت های گوناگون شامل MS Excel ،TVS،CSV  و دیگر موارد بخواند.نصب پانداس1) نصب به کمک pip، برای نصب پانداس، می‌توان قطعه کد زیر را مورد استفاده قرار داد:pip install pandas2) افرادی که آناکوندا (Anaconda) را روی سیستم خود نصب دارند، می‌توانند از دستور زیر برای نصب کتابخانه Pandas استفاده کنند:conda install pandas3) با اینکه پیشنهاد می شود که آخرین نسخه کتابخانه را نصب کنید، ولی اگر کاربری نسخه قدیمی ای را در نظر دارد باید شماره ورژن را دقیقا هنگام نصب وارد کند، مثلا می خواهیم ورژن شماره 0.23.4 را نصب کنیم:conda install pandas = 0.23.4برای اطلاعات بیشترروی این لینک کلیک کنید.خب حالا که آنچه را که برای شروع نیاز بود تقریبا یادگرفتیم و همچنین پانداس دوست داشتنیمون را هم نصب کردیم، میریم سراغ توابع مهم و کاربردیش!توابع مهم و کاربردی Pandas:import :نخستین گام پس از نصب پانداس، وارد کردن بسته آن استimport pandasهمچنین می توان با لقب دادن به pandas در ادامه بجای نام pandas از آن لقب استفاده کنیم، اینکار باعث مختصر شدن و راحتی کار می شود. مانند دستور روبرو:import pandas as pdSeries:برای ساخت Series، متد ()pd.Series فراخوانی می‌شود و یک آرایه، چنانکه در زیر نمایش داده شده، پاس داده می‌شود.series1 = pd.Series([1,2,3,4])print(series1)خروجیDataFrame:دیتافریم، داده‌ها را در سطرها و ستون‌ها سازمان‌دهی می‌کند و از آن‌ها یک ساختار داده دوبُعدی می‌سازد. در قطعه کد زیر ساخت یک دیتافریم را به کمک پانداس مشاهده می کنیم:df = pd.DataFrame({&amp;quotColumn1&amp;quot: [1, 4, 8, 7, 9],&amp;quotColumn2&amp;quot: [&#039;a&#039;, &#039;column&#039;, &#039;with&#039;, &#039;a&#039;, &#039;string&#039;],&amp;quotColumn3&amp;quot: [1.23, 23.5, 45.6, 32.1234, 89.453],&amp;quotColumn4&amp;quot: [True, False, True, False, True]})print(df)خروجیلازمه بگم که روش های دیگه ای برای ساخت دیتافریم در پانداس وجود داره که ما اینجا به یه روش بسنده میکنیم اما شما میتونید خیلی راحت با یه سرچ ساده بقیه روش ها رو هم یاد بگیرید.Read_CSV:یک فایل  CSV (Comma Separated Value)، یک فایل متنی با مقادیری است که به وسیله کاما (,) از یکدیگر جدا شده‌اند.برای وارد کردن فایل های CSV در پانداس مطابق قطعه کد زیر عمل می کنیم (فرض کنید نام فایل name.csv است):data = pd.read_csv(&#039;name.csv&#039;)در اینجا توضیح دو تا از پارامتر های مهم این متد را داریم:· skiprows : برای نادیده گرفتن سطر یا سطرهای خاصی از دیتاست.· low_memory: دیتاست را بصورت داخلی پردازش می کند تا حافظه کمتری در حین تجزیه استفاده شود.to_numpy:برای تبدیل دیتافریم به آرایه که به کمک کتابخانه (Numpy) می توان مدیریت کرد طبق کد زیر عمل می کنیم:df.to_numpy()کتابخانه  Numpy پیش از این آموزش داده شده است اگر هنوز اون آموزش رو نخوندید پیشنهاد می کنم حتما اونا مطالعه کنید.describe:برای مشاهده آمار های عددی دیتافریم و داشتن درک از آن، به صورت روبرو عمل می کنیم:df.describe()خروجیinfo:برای مشاهده اطلاعات مربوط به دیتافریم و درک کلی از ویژگی ها، تایپ مقادیر، و... از این متد می توان استفاده کرد:df.info()خروجیvalue_counts:برای بدست آوردن تعداد تکرار مقادیر، در مثال زیر تعداد تکرار مقدار های ستون Column4 را حساب می کنیم:df[&amp;quotColumn4&amp;quot].value_counts()خروجیT:به کمک کد زیر می توان ترانهاده (جایجایی سطر و ستون) دیتافریم را بدست آوریم:df.Tخروجیsort_index:برای مرتب سازی ستون های دیتافریم از دستور زیر استفاده می کنیم:df.sort_index(axis=1, ascending=False)دقت کنید که دستور بالا بصورت نزولی مرتب سازی می کند و برای اینکه مرتب سازی صعودی داشته باشیم باید به شکل زیر عمل کنیم:df.sort_index(axis=1, ascending=True)sort_values:برای مرتب سازی دیتافریم بر اساس یک ستون خاص (مانند Column2) طبق کد زیر پیش می رویم:df.sort_values(by=&amp;quotColumn2&amp;quot)loc:این متد ابزار مناسبی است که به کاربر کمک می‌کند تا تنها سطرهای معینی را در مجموعه داده بخواند. این مورد، در مثال زیر نمایش داده شده است.df.loc[[0, 4], [&amp;quotColumn3&amp;quot]]خروجیiloc:این متد هم مثل متد قبلی است منتها اینبار از اندیس استفاده می کنیم:df.iloc[2:4, 0:3]در واقع از قابلیت slices مانند آنچه که در نامپای وآرایه ها بود استفاده می کنیم.خروجیBoolean Indexing:یکی از امکانات جذاب پانداس، که به کمک آن می توانیم با ایجاد یک شرط داده ها را فیلتر کنیم، به کد زیر توجه کنید:df[df[&amp;quotColumn4&amp;quot] &gt; 4]در واقع با اینکار دیتافریمی نمایش داده می شود که مقادیر Column1 آن بزرگتر از 4 می باشند.خروجیiat:مقدار دهی دستی به مختصات خاصی از دیتافریم. از دستور زیر استفاده می کنیم:df.iat[4, 0] = 100dropna:برای حذف سطر یا ستون هایی که مقادیر گم شده (missing values) دارند و کامل نیستند:df.dropna(inplace=True)fillna:برای پُر کردن سطر یا ستون هایی که مقادیر گم شده (missing values) دارند و کامل نیستند(مثلا با عدد 5 پُر می کنیم):df.fillna(value=5)isna:برای تشخیص مقادیر گم شده استفاده می شود و خروجی به ما جدولی از بولین ها برای مقدار گم شده بودن یا نبودن می دهد:df.isna()خروجیmerge:کتابخانه پانداس این امکان را برای کاربر فراهم می‌کند که اشیای دیتافریم را با تابع merge() به یکدیگر متصل کنند. در ادامه، دو دیتافریم ساخته و روش ادغام کردن آن‌ها با یکدیگر نمایش داده شده است، دیتا فریم اول:d1 = {&#039;subject_id&#039;: [&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;],&#039;student_name&#039;: [&#039;John&#039;, &#039;Emily&#039;, &#039;Kate&#039;, &#039;Joseph&#039;, &#039;Dennis&#039;]}df1 = pd.DataFrame(d1, columns=[&#039;subject_id&#039;, &#039;student_name&#039;])دیتا فریم دوم:d2 = {&#039;subject_id&#039;: [&#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;],&#039;student_name&#039;: [&#039;Brian&#039;, &#039;William&#039;, &#039;Lilian&#039;, &#039;Grace&#039;, &#039;Caleb&#039;]}df2 = pd.DataFrame(d2, columns=[&#039;subject_id&#039;, &#039;student_name&#039;])ادغام این دو دیتافریم بر اساس subject_id:pd.merge(df1, df2, on=&#x27;subject_id&#x27;)خروجیconcat:به کمک این متد می توان دو دیتافریم را به یکدیگر الحاق کرد. به قطعه کد زیر توجه کنید:pd.concat([df1, df2])خروجیgroup by:به کمک پانداس می توان کل دیتافریم را بر مبنای ستون خاصی دسته بندی کنیم. قطعه کد زیر دیتافریم ما را بر اساس ستون 2Column و جمع مقادیر مربوطه نمایش خواهد داد:df.groupby(&amp;quotColumn2&amp;quot).sum()خروجیcategoricals:یکی از متد های بسیار مهم می باشد که به ما کمک می کند مقادیری با تایپ category داشته باشیم:df[&amp;quotgrade&amp;quot]=[&amp;quota&amp;quot, &amp;quotb&amp;quot, &amp;quotb&amp;quot, &amp;quote&amp;quot, &amp;quota&amp;quot]df[&amp;quotgrade&amp;quot] = df[&amp;quotgrade&amp;quot].astype(&amp;quotcategory&amp;quot)زمانیکه دیتافریم آپدیت شده را به کمک متد info() خروجی می گیریم:خروجییه نکته ای باید بگم اونم اینه که اگه تایپ مقادیر grade رو به category تبدیل نمی کردیم مانند ستون Column2 تایپش object می شد این متد رو حتما بلد باشید که بعدا تو الگوریتم های ماشین لرنینگ بش نیاز خواهیم داشت.time series:برای تولید زمان های مختلف بکار می رود:dti = pd.date_range(&amp;quot2021-10-31&amp;quot, periods=3, freq=&amp;quotH&amp;quot)می توان در کد بالا تعداد دوره زمانی و نوع آن را تغییر داد.خروجیcorrelation:با استفاده از این متد می توان ضریب همبستگی داده ها را بدست آوریم. ضریب همبستگی، شدت رابطه و یا نوع رابطه (مستقیم یا معکوس) را نشان می دهد و همواره بین 1 و 1- می باشد.df.corr()خروجیto_csv:ذخیره دیتافریم به عنوان یک فایل csv:df.to_csv(&amp;quotmyFirstDataFrame.csv&amp;quot)و در پایان باید بگم که سعی کردیم تو این مقاله بهترین و کاربردی ترین توابع کتابخانه ی پانداس را براتون بگیم که بتونید این کتابخونه رو خیلی سریع و با کیفیت بالا یادش بگیرید ولی چیزی که میتونه شما رو بیشتر موفق کنه، اینه که تمرین کنید!موفق باشید!محمد جعفر پوراحسان قیچی ساز</description>
                <category>نشریه انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Sat, 13 Nov 2021 17:17:40 +0330</pubDate>
            </item>
            </channel>
</rss>