Вопрос или проблема
На протяжении моего понимания использования машинного обучения всегда существовал столбец с названием Target
или Label
, который заставлял нас использовать методы Supervised
обучения. Теперь я не имею дело ни с supervised
, ни с unsupervised
процедурой. Я не знаю, что это такое. У меня есть несколько датафреймов, каждый из которых имеет 3 столбца. Столбцы имеют взаимосвязь друг с другом, но это не имеет значения. Я ищу способ показать эффект образцов друг на друга. В смысле того, что в моей теме теоретически доказано, что в определенной ситуации некоторые образцы важнее других. Теперь мне нужно показать это с помощью машинного обучения. Я сгенерировал необходимые данные для этой ситуации, но не знаю, как найти эффект образцов друг на друга. Я мог бы показать некоторые различия в образцах, но не смог найти какой-либо значимый сценарий для использования в машинном обучении. Чтобы прояснить, я определил значение, которое представляет собой вычисление между значениями каждого столбца, и мне хотелось бы узнать, в вычислении этого значения в определенном индексе, какой образец играет более важную роль. Теперь вопрос в том,
**КАК НАЙТИ ЭФФЕКТ ОБРАЗЦОВ ДРУГ НА ДРУГА С ПОМОЩЬЮ ПРОСТЫХ ИЛИ СЛОЖНЫХ ТЕХНИК?**
Чтобы лучше понять, давайте посмотрим на некоторый тип данных здесь.
Пример датафрейма приведен ниже:
S C E
0 0.2 1e-2
1 -0.15 2e-2
2 0.24 2e-3
3 -0.1 3e-1
4 0.3 2e-1
Третий столбец является комбинацией первых двух столбцов (существует уравнение комбинации). Теперь мне нужно знать, например, для E[2]
, каков эффект c[0],c[1],c[2],c[4]
.
Во-первых, столбцы в вашем датафрейме называются признаками,
Таким образом, правильный вопрос для вас будет
Как найти корреляцию между признаками?
Как упоминалось в вопросе, вы хотите найти корреляцию между ними,
Итак,
Что такое Корреляция?
Ответ: Корреляция – это статистика, которая измеряет степень, в которой две переменные изменяются относительно друг друга.
Пример: Продажа мороженого
Местный магазин мороженого отслеживает, сколько мороженого они продают по сравнению с температурой в тот день, вот их данные за последние 12 дней:
А вот те же данные в виде диаграммы рассеяния:
Мы можем легко заметить, что более теплые дни и более высокие продажи идут вместе. Этот тип зависимости называется положительной корреляцией, что означает, что если одна переменная увеличивается, другая тоже увеличивается, следовательно, обе переменные предоставляют одну и ту же информацию.
В общем случае лучше исключить одну из них.
Ответ или решение
Как определить влияние образцов друг на друга с использованием простых и сложных методов?
Ваша задача по определению влияния образцов друг на друга в рамках имеющихся данных представляет собой интересный вызов. В данной ситуации, где нет четкой структуры «целевой» переменной, мы можем использовать разные подходы для анализа взаимосвязей между переменными.
Понимание корреляции и взаимосвязей
Первое, что следует отметить, это само понятие корреляции. Корреляция – это статистический метод, который измеряет степень взаимосвязи между двумя переменными. В вашем случае, похоже, вы хотите проанализировать, как значения в одном столбце (например, E
) зависят от значений в других столбцах (S
и C
).
Простой анализ с использованием корреляции
-
Корреляционный анализ:
Вы можете начать с вычисления коэффициента корреляции между вашими переменными. Это даст вам понимание о том, насколько сильно изменяются значенияE
в зависимости отS
иC
.- Например, используйте метод
corr()
из библиотеки pandas для получения матрицы корреляций:
import pandas as pd data = { 'S': [0.2, -0.15, 0.24, -0.1, 0.3], 'C': [0.01, 0.02, 0.002, 0.3, 0.2], 'E': [0.2 * 0.01 - 0.15 * 0.02, ...] # Ваша формула для расчета E } df = pd.DataFrame(data) correlation_matrix = df.corr() print(correlation_matrix)
- Например, используйте метод
-
Визуализация данных:
Постройте диаграммы рассеяния для визуализации взаимосвязей между ваших переменных. Это даст вам наглядное представление о том, как они соотносятся друг с другом.import seaborn as sns import matplotlib.pyplot as plt sns.pairplot(df) plt.show()
Продвинутые методы анализа
Если простой корреляционный анализ не дает необходимой информации, возможны более сложные методы:
-
Модели регрессии:
Построение регрессионной модели может позволить вам определить, какие сильнее влияют наE
. Вы можете рассмотреть простую линейную регрессию или множественную регрессию.from sklearn.linear_model import LinearRegression X = df[['S', 'C']] y = df['E'] model = LinearRegression().fit(X, y)
-
Важность признаков:
Если вы используете модели машинного обучения (например, деревья решений, случайный лес), вы можете получить значения важности признаков. Это даст вам оценку того, насколько каждый из признаков способствует предсказаниюE
.from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor().fit(X, y) importances = model.feature_importances_ print(importances)
-
Шапиро-Уилк тест и другие тесты значимости:
Используйте статистические тесты для определения значимости ваших результатов. -
Исследование взаимозависимостей:
Рассмотрите возможность создания модели нейронной сети, которая может выявить nonlinear зависимости между переменными.
Заключение
Анализ влияния образцов друг на друга, используя как простые методы корреляции, так и более сложные статистические и машинные методы, позволит вам получить ценные инсайты. Записав свои находки и открытые вопросы, вы сможете не только продемонстрировать влияние одного образца на другой, но и использовать эти знания для дальнейших исследований и разработки более предсказательных моделей.