برای دیدن دوره های ما کلیک کنید...

PCA

معماری و هوش مصنوعی

PCA

PCA تحلیل اجزای اصل الگوریتمی از داده ها است برای تبدیل ستون های یک مجموعه داده به مجموعه ای جدید از ویژگی ها به نام  Principal Components در واقع PCA یک تکنیک انتخاب ویژگی نیست، بلکه یک تکنیک ترکیبی ویژگی و یا یکپارچه سازی ویژگی های موجود در داده ها است.

PCA آن ویژگی ها را خلاصه می کند تا ویژگی های کمتری را تعریف کند تا داده ها را به خوبی توضیح دهد. از این گذشته، افزونگی یا همبستگی را که می تواند در هنگام توضیح داده ها با استفاده از تعداد زیاد متغیرها وجود داشته باشد حذف نموده و فهرستی از متغیرهای همبسته ایجاد می نماید.

عملاً PCA به دو دلیل استفاده می شود:1-کاهش ابعاد داده ها 2-تجسم کلاس های داده ها، PCA در صورتی به سطح بالاتری از کاهش بعد دست می یابد که بین متغیرهای موجود در مجموعه داده ها همبستگی زیادی وجود داشته باشد.

به دست آوردن PCA در پایتون:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from sklearn.decomposition import PCA

from sklearn.preprocessing import StandardScaler

2-بارگذاری داده ها:

مجموعه داده های breast_cancer sklearn.datasets را بارگذاری کنید. مجموعه داده ها دارای ۵۶۹ مورد داده با ۳۰ ویژگی ورودی است. با توجه به ۳۰ ویژگی ورودی، تجسم این داده ها غیرممکن است.

from sklearn.datasets import load_breast_cancer

data=load_breast_cancer()

data.keys()

print(data[‘target_names’])

print(data[‘feature_names’])

3-گرفتن PCA

مجموعه داده ها را قبل از PCA استاندارد یا نرمال کنید( این امر به آن دلیل است که پیش‌بین‌های اصلی ممکن است مقیاس‌های گوناگونی داشته باشند).

وارد کردن PCA از sklearn.decomposition

تعداد اجزای اصلی را انتخاب کنید.

#ساخت یک دیتا فریم با استفاده از کتابخانه پانداس

df1=pd.DataFrame(data[‘data’],columns=data[‘feature_names’])

 #مقیاس داده ها

scaling=StandardScaler()

# Use fit and transform method

scaling.fit(df1)

Scaled_data=scaling.transform(df1)

#تعداد ابعاد را به 3 کاهش میدهیم

principal=PCA(n_components=3)

principal.fit(Scaled_data)

x=principal.transform(Scaled_data)

#بررسی ابعاد داده ها پس ازPCA

print(x.shape)

output=(569, 3)

4-تجسم:

یک گراف 2 بعدی

 

plt.figure(figsize=(10,10))

plt.scatter(x[:,0],x[:,1],c=data[‘target’],cmap=’plasma’)

plt.xlabel(‘pc1’)

plt.ylabel(‘pc2’)

تجسم:یک گراف 3 بعدی

# واردات کتابخانه های مربوطه برای گراف 3بعدی

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(10,10))

# انتخاب طرح 3بعدی برای ایجاد یک گراف 3بعدی

axis = fig.add_subplot(111, projection=’3d’)

# x[:,0]is pc1,x[:,1] is pc2 while x[:,2] is pc3

axis.scatter(x[:,0],x[:,1],x[:,2], c=data[‘target’],cmap=’plasma’)

axis.set_xlabel(“PC1”, fontsize=10)

axis.set_ylabel(“PC2”, fontsize=10)

axis.set_zlabel(“PC3”, fontsize=10)

برای مثال در معماری:

در داده های معماری نیز ویژگی های فراوانی وجود دارد، از ویژگی های کیفی تا کمی، در بناهای تاریخی ویژگی ابعادپنجره ها، رنگ شیشه ها، ارتباط فضاها و غیره می تواند در یک پایگاه داده ذخیره شده و در هنگام پردازش توسط PCA کاهش بعد شود تا داده ها نسبت به هم یکپارچه تر عمل نمایند.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *