Приклади реальних проблем
Розглянемо реальний приклад застосування методу PCA. Імпортуємо бібліотеки, з якими будемо працювати:
# Лінійна алгебра та обробка даних
import numpy as np
import pandas as pd
з sklearn.preprocessing import StandardScaler
# Модель PCA
from sklearn.decomposition import PCA
# Візуалізація даних
import seaborn as sns
import matplotlib.pyplot as plt
Далі зчитується файл train.csv
(з інтернету), який містить дані про продаж будинків з характеристиками будинків та їхніми цінами:
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/7b22c447-77ad-48ae-a2d2-4e6714f7a4a6/train_S1.csv')
Обробимо наші дані. Цей процес включає в себе видалення багатьох характеристик з набору даних (ми залишимо лише 10 змінних - так нам буде легше працювати з отриманими результатами, щоб не було занадто багато характеристик), а також масштабування даних:
# Стовпці, які залишаться
columns_ndrop = ['YearBuilt', 'LotArea', 'MSSubClass', 'OverallQual', 'SalePrice', 'PoolArea', 'GarageArea', 'BedroomAbvGr', 'KitchenAbvGr', 'Каміни'].
data = data.drop(data.columns.difference(columns_ndrop), 1)
data_sc = StandardScaler().fit_transform(data)
Створимо модель PCA:
pca = PCA(n_components = 3, whiten = True)
pca = pca.fit(data_sc)
Тепер, щоб пояснити отримані результати, ми створимо теплову карту факторного навантаження. У наступному розділі ми дізнаємось, навіщо вона нам потрібна.
factor_analysis = pca.components_.T * np.sqrt(pca.explained_variance_)
fig, ax = plt.subplots(figsize=(3, 20))
sns.heatmap(factor_analysis, xticklabels = ["C1", "C2", "C3"],
yticklabels = data_sc.columns, annot = True,
cmap = "YlGnBu")
plt.show()
Всього за кілька кроків ми зменшили розмірність набору даних з 10 характеристик до 3! У наступному розділі ми спробуємо інтерпретувати результати PCA.
Swipe to start coding
Прочитати набір даних train.csv
(з Інтернету) і створити для нього PCA модель. Вона повинна містити 4 основні компоненти.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 5.26
Приклади реальних проблем
Свайпніть щоб показати меню
Розглянемо реальний приклад застосування методу PCA. Імпортуємо бібліотеки, з якими будемо працювати:
# Лінійна алгебра та обробка даних
import numpy as np
import pandas as pd
з sklearn.preprocessing import StandardScaler
# Модель PCA
from sklearn.decomposition import PCA
# Візуалізація даних
import seaborn as sns
import matplotlib.pyplot as plt
Далі зчитується файл train.csv
(з інтернету), який містить дані про продаж будинків з характеристиками будинків та їхніми цінами:
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/7b22c447-77ad-48ae-a2d2-4e6714f7a4a6/train_S1.csv')
Обробимо наші дані. Цей процес включає в себе видалення багатьох характеристик з набору даних (ми залишимо лише 10 змінних - так нам буде легше працювати з отриманими результатами, щоб не було занадто багато характеристик), а також масштабування даних:
# Стовпці, які залишаться
columns_ndrop = ['YearBuilt', 'LotArea', 'MSSubClass', 'OverallQual', 'SalePrice', 'PoolArea', 'GarageArea', 'BedroomAbvGr', 'KitchenAbvGr', 'Каміни'].
data = data.drop(data.columns.difference(columns_ndrop), 1)
data_sc = StandardScaler().fit_transform(data)
Створимо модель PCA:
pca = PCA(n_components = 3, whiten = True)
pca = pca.fit(data_sc)
Тепер, щоб пояснити отримані результати, ми створимо теплову карту факторного навантаження. У наступному розділі ми дізнаємось, навіщо вона нам потрібна.
factor_analysis = pca.components_.T * np.sqrt(pca.explained_variance_)
fig, ax = plt.subplots(figsize=(3, 20))
sns.heatmap(factor_analysis, xticklabels = ["C1", "C2", "C3"],
yticklabels = data_sc.columns, annot = True,
cmap = "YlGnBu")
plt.show()
Всього за кілька кроків ми зменшили розмірність набору даних з 10 характеристик до 3! У наступному розділі ми спробуємо інтерпретувати результати PCA.
Swipe to start coding
Прочитати набір даних train.csv
(з Інтернету) і створити для нього PCA модель. Вона повинна містити 4 основні компоненти.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 5.26single