Объяснённая дисперсия
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 27 из 51.
Сколько сохранили 2 компоненты? На каждую компоненту приходится доля общего разброса — её объяснённая доля дисперсии. Для всех 13 компонент вина:
PCA() без n_components сохраняет их все. np.cumsum возвращает нарастающую сумму:
pca = PCA().fit(scaled)
ratio = pca.explained_variance_ratio_
print(ratio[:3].round(3))
total = np.cumsum(ratio)
print((total < 0.9).sum() + 1)Это выводит [0.362 0.192 0.111] и 8: сумма всё ещё меньше 0.9, плюс компонент, который пересекает этот порог. Таким образом, двумерная карта вина сохранила 55%.
Задание
СреднеВ шоколадной лаборатории измеряют 9 параметров каждой плитки. Сколько компонентов сохраняют 90% разброса? scaled готова.
- Обучи
PCA()и возьми долю каждого компонента. - Выведи, сколько компонентов достигают 90%.
- Нарисуй доли в виде столбцов на позициях 1, 2, 3..., с подписью
each component; накопленную сумму — в виде линии сmarker="o", с подписьюrunning total; пунктирную серую линию на уровне 0.9; легенду. Покажи график.
Для другой лаборатории:
Components for 90%: 4Попробуйте сами
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# Лаборатория производителя шоколада: 9 измерений для каждой из 150 плиток
bars = pd.read_csv("chocolate.csv")
scaled = StandardScaler().fit_transform(bars)
fig, ax = plt.subplots()
ax.set_title("Spread Kept by Each Component")
ax.set_xlabel("Component")
ax.set_ylabel("Share of spread")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставкиПотренируйтесь самостоятельно: Онлайн-компилятор Python