<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های HosseinGhorbani</title>
        <link>https://virgool.io/feed/@m_15338647</link>
        <description>Computer science student</description>
        <language>fa</language>
        <pubDate>2026-06-17 14:41:56</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1599243/avatar/tE2Kxk.jpeg?height=120&amp;width=120</url>
            <title>HosseinGhorbani</title>
            <link>https://virgool.io/@m_15338647</link>
        </image>

                    <item>
                <title>پیش پردازش داده در داده کاوی</title>
                <link>https://virgool.io/Solidity/%D9%BE%DB%8C%D8%B4-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AF%D9%87-%DA%A9%D8%A7%D9%88%DB%8C-itzitoe6o97s</link>
                <description>پیش پردازش در داده کاوی:   پیش پردازش داده یک تکنیک داده کاوی است که برای تبدیل داده های خام در قالبی مفید و کارآمد استفاده می شود.مراحل مربوط به پیش پردازش داده ها:1. پاکسازی داده ها:داده ها می توانند بخش های بی ربط و گم شده زیادی داشته باشند. برای رسیدگی به این قسمت، پاکسازی داده ها انجام می شود. این شامل مدیریت داده های از دست رفته، داده های نویز و غیره است.(الف).داده های از دست رفته:   این وضعیت زمانی ایجاد می‌شود که برخی از داده‌ها در داده‌ها وجود نداشته باشد. می توان آن را به روش های   مختلف مدیریت کرد.  بعضی از آنها:  1.تاپل ها را نادیده بگیرید:    این رویکرد فقط زمانی مناسب است که مجموعه داده ای که در اختیار داریم بسیار بزرگ باشد و چندین مقدار     در یک تاپل وجود نداشته باشد.  2.مقادیر از دست رفته را پر کنید:   راه های مختلفی برای انجام این کار وجود دارد. شما می توانید انتخاب کنید که مقادیر از دست رفته را به صورت    دستی، با میانگین مشخصه یا محتمل ترین مقدار پر کنید.(ب). داده های پر سر و صدا:   داده های پر سر و صدا یک داده بی معنی هستند که توسط ماشین ها قابل تفسیر نیستند. این داده ها می   توانند به دلیل جمع آوری داده های معیوب، خطاهای ورود داده ها و غیره تولید شوند. می توان آن را به روش   های زیر مدیریت کرد:   1.روش باینینگ:    این روش بر روی داده های مرتب شده به منظور صاف کردن آن کار می کند. کل داده ها به بخش هایی با     اندازه مساوی تقسیم می شوند و سپس روش های مختلفی برای تکمیل کار انجام می شود. هر بخش به طور     جداگانه مدیریت می شود. می توان تمام داده ها را در یک بخش با میانگین آن جایگزین کرد یا مقادیر مرزی را     می توان برای تکمیل کار مورد استفاده قرار داد.   2.پسرفت:    در اینجا داده ها را می توان با تطبیق آن با یک تابع رگرسیون صاف کرد. رگرسیون مورد استفاده ممکن است     خطی (دارای یک متغیر مستقل) یا چندگانه (دارای چندین متغیر مستقل) باشد.   3.خوشه بندی:   این رویکرد داده های مشابه را در یک خوشه گروه بندی می کند. نقاط پرت ممکن است شناسایی نشده باشند    یا خارج از خوشه ها قرار بگیرند.2. تبدیل داده ها:این مرحله به منظور تبدیل داده ها به اشکال مناسب برای فرآیند کاوی انجام می شود. این شامل راه های زیر است:  1.عادی سازی:   این به منظور مقیاس بندی مقادیر داده ها در یک محدوده مشخص انجام می شود (-1.0 تا 1.0 یا 0.0 تا 1.0)  2.انتخاب ویژگی:   در این استراتژی، ویژگی‌های جدید از مجموعه ویژگی‌های داده شده برای کمک به فرآیند استخراج ساخته    می‌شوند.  3.گسسته سازی:   این کار برای جایگزینی مقادیر خام صفت عددی توسط سطوح بازه ای یا سطوح مفهومی انجام می شود. 4.نسل سلسله مراتب مفهومی:   در اینجا ویژگی ها از سطح پایین تر به سطح بالاتر در سلسله مراتب تبدیل می شوند. به عنوان مثال - ویژگی    &quot;شهر&quot; را می توان به &quot;کشور&quot; تبدیل کرد.3. کاهش داده ها:از آنجایی که داده کاوی تکنیکی است که برای مدیریت حجم عظیمی از داده ها استفاده می شود. در حین کار با حجم عظیمی از داده ها، تجزیه و تحلیل در چنین مواردی سخت تر شد. برای خلاص شدن از شر این، از تکنیک کاهش داده استفاده می کنیم. هدف آن افزایش کارایی ذخیره سازی و کاهش هزینه های ذخیره سازی و تجزیه و تحلیل داده ها است.مراحل مختلف کاهش داده ها عبارتند از:   1.تجمع مکعب داده:عملیات تجمیع به داده ها برای ساخت مکعب داده اعمال می شود.   2.انتخاب زیر مجموعه ویژگی:   ویژگی های بسیار مرتبط باید استفاده شود، بقیه همه را می توان دور انداخت. برای انجام انتخاب صفت،    می‌توان از سطح معنی‌داری و p-مقدار صفت استفاده کرد. مشخصه‌ای که مقدار p بیشتر از سطح معنی‌داری    دارد را می‌توان کنار گذاشت.   3.کاهش تعداد:   این امکان ذخیره مدل داده ها را به جای کل داده ها فراهم می کند، به عنوان مثال: مدل های رگرسیون.  4.کاهش ابعاد:   این باعث کاهش اندازه داده ها با مکانیسم های رمزگذاری می شود. اگر پس از بازسازی از داده های فشرده،    بتوان داده های اصلی را بازیابی کرد، این کاهش را کاهش بدون تلفات و در غیر این صورت کاهش اتلافی می    نامند. دو روش موثر کاهش ابعاد عبارتند از: تبدیل موجک و PCA (تحلیل اجزای اصلی).گردآورند:حسین قربانیبا تشکر از استاد دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن.Dr. Maryam HajiesmaeiliPhD of computer science from Kingston university of Londonhttps://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743منابع: https://www.techtarget.com/searchdatamanagement/definition/data-preprocessing  https://www.projectpro.io/article/data-preprocessing-techniques-and-steps/512  https://blog.faradars.org/data-preprocessing-in-data-mining/  https://www.geeksforgeeks.org/data-preprocessing-in-data-mining/?ref=leftbar-rightbar </description>
                <category>HosseinGhorbani</category>
                <author>HosseinGhorbani</author>
                <pubDate>Tue, 21 Jun 2022 17:38:49 +0430</pubDate>
            </item>
                    <item>
                <title>مزایای سیستم مدیریت پایگاه داده</title>
                <link>https://virgool.io/@m_15338647/%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-xmhrtpka7tj6</link>
                <description>سیستم مدیریت پایگاه داده (DBMS) مجموعه ای از برنامه ها است که با در نظر گرفتن اقدامات امنیتی مناسب امکان دسترسی، بازیابی و استفاده از آن داده ها را فراهم می کند. سیستم مدیریت پایگاه داده (DBMS) برای یکپارچه سازی بهتر داده ها و امنیت آن واقعا مفید است.نمودار ساده برای درک بهتر DBMSمزایای سیستم مدیریت پایگاه داده (DBMS):1. انتقال بهتر داده ها:مدیریت پایگاه داده مکانی را ایجاد می کند که در آن کاربران از داده های مدیریت شده بیشتر و بهتر بهره مند شوند. بنابراین این امکان را برای کاربران نهایی فراهم می کند که نگاهی سریع داشته باشند و به هر تغییری که در محیط آنها ایجاد می شود سریع پاسخ دهند.2.امنیت بهتر داده ها:با افزایش تعداد کاربران، انتقال داده یا نرخ اشتراک داده نیز افزایش می یابد، بنابراین خطر امنیت داده ها افزایش می یابد. این به طور گسترده در دنیای شرکت ها استفاده می شود، جایی که شرکت ها پول، زمان و تلاش زیادی را برای اطمینان از ایمن بودن و استفاده صحیح از داده ها سرمایه گذاری می کنند. یک سیستم مدیریت پایگاه داده (DBMS) بستر بهتری را برای حفظ حریم خصوصی داده ها و سیاست های امنیتی فراهم می کند، بنابراین، به شرکت ها برای بهبود امنیت داده ها کمک می کند.3.یکپارچه سازی بهتر داده ها:با توجه به سیستم مدیریت پایگاه داده، ما به شکلی از داده ها به خوبی مدیریت شده و هماهنگ شده دسترسی داریم، بنابراین مدیریت داده ها را بسیار آسان می کند و دید یکپارچه از نحوه کار یک سازمان خاص ارائه می دهد و همچنین به پیگیری نحوه تأثیرگذاری یک بخش از شرکت کمک می کند.4. به حداقل رساندن ناسازگاری داده ها:زمانی که نسخه‌های متفاوتی از یک داده در مکان‌های مختلف ظاهر می‌شوند، ناسازگاری داده‌ها بین فایل‌ها رخ می‌دهد. به عنوان مثال، ناهماهنگی داده‌ها زمانی رخ می‌دهد که نام دانش‌آموزی به‌عنوان «جان وین» در رایانه اصلی مدرسه ذخیره شود، اما در سیستم ثبت‌شده معلم، همان نام دانش‌آموز «ویلیام جی وین» است، یا زمانی که قیمت یک محصول به صورت محلی 86.95 دلار است. سیستم شرکت و سیستم دفتر فروش ملی آن همان قیمت محصول 84.95 دلار را نشان می دهد. بنابراین اگر یک پایگاه داده به درستی طراحی شده باشد، ناهماهنگی داده ها را می توان تا حد زیادی کاهش داد و در نتیجه ناهماهنگی داده ها را به حداقل رساند.5.دسترسی سریعتر به داده ها:سیستم مدیریت پایگاه داده (DBMS) به تولید پاسخ های سریع به پرسش های پایگاه داده کمک می کند و بنابراین دسترسی به داده ها را سریعتر و دقیق تر می کند. به عنوان مثال، برای خواندن یا به روز رسانی داده ها. به عنوان مثال، کاربران نهایی، هنگامی که با مقادیر زیادی از داده های فروش سروکار دارند، دسترسی بهتری به داده ها خواهند داشت که چرخه فروش سریعتر را ممکن می سازد.برخی از سوالات ممکن است مانند:افزایش فروش در سه ماه اخیر چقدر بوده است؟پاداشی که در پنج ماه گذشته به هر یک از فروشندگان داده می شود چقدر است؟چند مشتری امتیاز اعتباری 850 یا بیشتر دارند؟6.تصمیم گیری بهتر:با توجه به DBMS در حال حاضر ما داده های مدیریت شده بهتر و دسترسی بهتر به داده ها را داریم که به همین دلیل می توانیم اطلاعات با کیفیت بهتری تولید کنیم و بر این اساس می توان تصمیمات بهتری گرفت. کیفیت بهتر داده ها دقت، اعتبار و زمان لازم برای خواندن داده ها را بهبود می بخشد.سیستم مدیریت پایگاه داده(DBMS) کیفیت داده ها را تضمین نمی کند، چارچوبی را برای بهبود کیفیت داده ها فراهم می کند.7.افزایش بهره وری کاربر نهایی:داده هایی که به کمک ترکیبی از ابزارهایی که داده ها را به اطلاعات مفید تبدیل می کند در دسترس است، به کاربر نهایی کمک می کند تا تصمیمات سریع، آموزنده و بهتری اتخاذ کند که می تواند بین موفقیت و شکست در اقتصاد جهانی تفاوت ایجاد کند.8.ساده:سیستم مدیریت پایگاه داده (DBMS) نمای منطقی ساده و واضحی از داده ها ارائه می دهد. بسیاری از عملیات مانند درج، حذف یا ایجاد فایل یا داده به راحتی قابل پیاده سازی هستند.گردآورند:حسین قربانیبا تشکر از استاد دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن.Dr. Maryam HajiesmaeiliPhD of computer science from Kingston university of Londonhttps://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743منابع:https://www.geeksforgeeks.org/advantages-of-database-management-system/https://www.geeksforgeeks.org/advantages-of-database-management-system/?ref=gcsehttps://www.irandnn.ir/mag/database-management/https://www.computerweekly.com/de/definition/Datenbank-Management-System-DBMS</description>
                <category>HosseinGhorbani</category>
                <author>HosseinGhorbani</author>
                <pubDate>Wed, 20 Apr 2022 10:28:47 +0430</pubDate>
            </item>
                    <item>
                <title>لیست پیوندی (Linked List)</title>
                <link>https://virgool.io/@m_15338647/%D9%84%DB%8C%D8%B3%D8%AA-%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C-linked-list-s4f1ocluokaa</link>
                <description>لیست پیوندی (Linked List)مانند آرایه ها، لیست پیوندی یک ساختار داده خطی است. برخلاف آرایه ها، عناصر لیست پیوندی در یک مکان پیوسته ذخیره نمی شوند. عناصر با استفاده از اشاره گر به هم مرتبط می شوند.چرا لیست پیوندی؟ آرایه ها را می توان برای ذخیره داده های خطی از انواع مشابه استفاده کرد، اما آرایه ها دارای محدودیت های زیر هستند: 1) اندازه آرایه ها ثابت است: بنابراین باید حد بالایی تعداد عناصر را از قبل بدانیم. همچنین، به طور کلی، حافظه اختصاص داده شده برابر با حد بالایی صرف نظر از میزان مصرف است.2) درج یک عنصر جدید در آرایه ای از عناصر گران است زیرا اتاق باید برای عناصر جدید ایجاد شود و برای ایجاد اتاق عناصر موجود باید جابجا شوند اما در لیست پیوندی اگر گره سر را داشته باشیم، می توانیم به هر کدام پیمایش کنیم. از طریق آن گره بزنید و گره جدید را در موقعیت مورد نیاز قرار دهید.به عنوان مثال، در یک سیستم، اگر لیست مرتب شده ای از شناسه ها را در یک آرایه id[] نگهداری کنیم.id[] =[1000، 1010، 1050، 2000، 2040].و اگر بخواهیم یک ID جدید 1005 وارد کنیم، برای حفظ ترتیب مرتب شده، باید همه عناصر را بعد از 1000 (به استثنای 1000) جابجا کنیم.حذف نیز با آرایه ها گران است مگر اینکه از تکنیک های خاصی استفاده شود. به عنوان مثال، برای حذف 1010 در id[]، همه چیز بعد از 1010 باید جابجا شود، به این دلیل کار زیادی انجام می شود که بر کارایی کد تأثیر می گذارد.مزیت ها نسبت به آرایه ها1) اندازه پویا 2) سهولت در درجاشکالات(Drawbacks):.1) دسترسی تصادفی مجاز نیست. ما باید به ترتیب از اولین گره (گره سر) به عناصر دسترسی داشته باشیم. بنابراین نمی‌توانیم با اجرای پیش‌فرض آن، جستجوی باینری را با لیست‌های پیوندی به طور موثر انجام دهیم..2) فضای حافظه اضافی برای یک اشاره گر با هر عنصر لیست مورد نیاز است..3) کش پسند نیست. از آنجایی که عناصر آرایه مکان های پیوسته هستند، محل مرجعی وجود دارد که در مورد لیست های پیوندی وجود ندارد.نمایندگی(Representation):یک لیست پیوندی با اشاره گر به اولین گره لیست پیوندی نشان داده می شود. اولین گره سر نام دارد. اگر لیست پیوند شده خالی باشد، مقدار head به NULL اشاره می کند.هر گره در یک لیست حداقل از دو بخش تشکیل شده است:1) داده (ما می توانیم اعداد صحیح، رشته ها یا هر نوع داده ای را ذخیره کنیم).2) اشاره گر (یا مرجع) به گره بعدی (یک گره را به گره دیگر متصل می کند).در C، ما می توانیم یک گره را با استفاده از ساختارها نشان دهیم. در زیر نمونه ای از یک گره لیست پیوندی با داده های عدد صحیح آورده شده است.// A linked list node
struct Node {
                 int data;
                          struct Node* next; 
 };اولین لیست پیوندی ساده در Cاجازه دهید یک لیست پیوندی ساده با 3 گره ایجاد کنیم.// A simple C program to introduce
// a linked list
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

struct Node {
             int data;    
                         struct Node* next;
};
// Program to create a simple linked
// list with 3 nodes
int main()
{
  struct Node* head = NULL;
   struct Node* second = NULL;
     struct Node* third = NULL;
// allocate 3 nodes in the heap
 head = (struct Node*)malloc(sizeof(struct Node));
 second = (struct Node*)malloc(sizeof(struct Node));
 third = (struct Node*)malloc(sizeof(struct Node));
   
/* Three blocks have been allocated dynamically.
We have pointers to these three blocks as head,
second and third
    head           second           third
     |                |               |
     |                |               |  
 +---+-----+     +----+----+     +----+----+
 | #  | #  |     | #  | #  |     |  # |  # |
 +---+-----+     +----+----+     +----+----+

# represents any random value.
Data is random because we haven’t assigned
anything yet  */

head-&gt;data = 1;  // assign data in first node
head-&gt;next = second; // Link first node with 
// the second node

/* data has been assigned to the data part of the first
 block (block pointed by the head). And next
 pointer of first block points to second.
 So they both are linked.

   head          second         third
    |              |              |
    |              |              | 
+---+---+     +----+----+     +-----+----+
| 1  | o-----&gt;| #  | #  |     |  #  | #  |
+---+---+     +----+----+     +-----+----+
*/

// assign data to second node
 second-&gt;data = 2;

// Link second node with the third node
  second-&gt;next = third;

/* data has been assigned to the data part of the second
  block (block pointed by second). And next
  pointer of the second block points to the third
  block. So all three blocks are linked. 

   head         second         third  
    |             |             | 
    |             |             |
+---+---+     +---+---+     +----+----+
| 1  | o-----&gt;| 2 | o-----&gt; |  # |  # |
+---+---+     +---+---+     +----+----+      */

third-&gt;data = 3;  // assign data to third node
third-&gt;next = NULL;

/* data has been assigned to data part of third
block (block pointed by third). And next pointer
of the third block is made NULL to indicate
that the linked list is terminated here.

We have the linked list ready.

   head
    |
    |
+---+---+     +---+---+       +----+------+
| 1  | o-----&gt;|  2  | o-----&gt; |  3 | NULL |
+---+---+     +---+---+       +----+------+

Note that only head is sufficient to represent
the whole list.  We can traverse the complete
list by following next pointers.    */

 return 0;
}پیمایش لیست پیوندیدر برنامه قبلی یک لیست پیوندی ساده با سه گره ایجاد کرده ایم. اجازه دهید لیست ایجاد شده را طی کنیم و داده های هر گره را چاپ کنیم. برای پیمایش، اجازه دهید یک تابع همه منظوره printList() بنویسیم که هر لیست داده شده را چاپ می کند.// A simple C program for traversal of a linked list
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

struct Node {
                      int data;
                            struct Node* next;
};

// This function prints contents of linked list starting from
// the given node
void printList(struct Node* n)
{
        while (n != NULL) {
                               printf(&amp;quot %d &amp;quot, n-&gt;data);
                                                                             n = n-&gt;next;
            }
}

 int main()
{
    struct Node* head = NULL;
          struct Node* second = NULL;
          struct Node* third = NULL;

// allocate 3 nodes in the heap
  head = (struct Node*)malloc(sizeof(struct Node));
  second = (struct Node*)malloc(sizeof(struct Node));
  third = (struct Node*)malloc(sizeof(struct Node));  

head-&gt;data = 1;  // assign data in first node
head-&gt;next = second;  // Link first node with second

second-&gt;data = 2;  // assign data to second node
second-&gt;next = third;

third-&gt;data = 3;    // assign data to third node
third-&gt;next = NULL;

printList(head);

   return 0; 

}گردآورندگان:علی قاسمیحسین قربانیسروش زندیمهدی نظریابوالفضل ولی الهییاشار مرتاض با تشکر از استاد دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن.  Dr. Maryam HajiesmaeiliPhD of computer science from Kingston university of Londonhttps://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743منابع:https://www.geeksforgeeks.org/linked-list-set-1-introduction/https://www.youtube.com/watch?v=R9PTBwOzceohttps://www.youtube.com/watch?v=TeIVI8xN0jwhttp://www.algorithmha.ir/%D8%B3%D8%A7%D8%AE%D8%AA%D9%85%D8%A7%D9%86-%D8%AF%D8%A7%D8%AF%D9%87/%D9%84%DB%8C%D8%B3%D8%AA-%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C/https://blog.faradars.org/%D8%B3%D8%A7%D8%AE%D8%AA%D9%85%D8%A7%D9%86-%D8%AF%D8%A7%D8%AF%D9%87-data-structure-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%AC%D8%A7%D9%85%D8%B9-%D9%88-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF/</description>
                <category>HosseinGhorbani</category>
                <author>HosseinGhorbani</author>
                <pubDate>Tue, 19 Apr 2022 00:56:33 +0430</pubDate>
            </item>
            </channel>
</rss>