Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

32 строки
1.2 KiB
Python

import numpy as np
from matplotlib import pyplot as plt
import pandas as pd
from sklearn.decomposition import PCA
# Загрузка датасета MLB
mlb_data = pd.read_csv('SOCR_Data_MLB_HeightsWeights.txt', sep='\t')
mlb_data.columns = ['Name', 'Team', 'Position', 'Height', 'Weight', 'Age']
# Создаем DataFrame аналогично ирисам
mlb_pd = pd.DataFrame(data=np.c_[mlb_data[['Height', 'Weight', 'Age']]],
columns=['Height (inches)', 'Weight (pounds)', 'Age (years)'])
# Выбираем данные для PCA
data = mlb_pd[['Height (inches)', 'Weight (pounds)', 'Age (years)']].to_numpy()
# Применяем PCA
pca = PCA(n_components=2)
pca.fit(data)
principalComponents = pca.fit_transform(data)
# вывод объясненной дисперсии
print("Объясненная дисперсия каждой компоненты:", pca.explained_variance_ratio_)
print("Суммарная объясненная дисперсия:", sum(pca.explained_variance_ratio_))
pc_df = pd.DataFrame(data=principalComponents, columns=['PC1', 'PC2'])
plt.scatter(pc_df['PC1'], pc_df['PC2'])
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.title("Projection on First Two Principal Components - MLB Data")
plt.show()