Подход к проверке независимости на основе перестановокPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подход к проверке независимости на основе перестановок

Сообщение Anonymous »

Я работаю в непараметрической среде и хочу провести проверку независимости с использованием перестановок. Я использую случайный лес в качестве модели регрессии и имею следующий код:

Код: Выделить всё

 import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error

X = pd.read_csv("X_p.csv", delimiter=",", engine="c", index_col=0, low_memory=False)
Y = pd.read_csv("Y_p.csv", delimiter=",", engine="c", low_memory=False)

X = X.iloc[:, 1:]
Y = Y.iloc[:, 1:]

Y = Y['0'].values.ravel()

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=42)

rf_model = RandomForestRegressor(n_estimators=100,min_samples_split=5,max_depth=50, random_state=42)

original_mse = mean_squared_error(Y_train, rf_model.fit(X_train, Y_train).predict(X_train))

permuted_mse = []
for _ in range(10):  # Number of permutations
permuted_Y = np.random.permutation(Y_train)
permuted_mse.append(mean_squared_error(permuted_Y, rf_model.fit(X_train, permuted_Y).predict(X_train)))

# Step 6: Significance Testing based on MSE
p_value_mse = np.sum(permuted_mse > original_mse) / (len(permuted_mse)+1)

# Print results
print("Original MSE:", original_mse)
print("Permutation test p-value based on MSE:", p_value_mse)
выход:

Код: Выделить всё

Original MSE: 2.2922379491349436
Permutation test p-value based on MSE: 0.9090909090909091

Process finished with exit code 0
Просто выполнение 10 перестановок кода занимает довольно много времени и всегда возвращает очень высокое значение p (в основном все перестановленные mse больше исходного). В чем моя ошибка? Я пытался изменить параметры случайного леса, но, похоже, ничего не помогает.
Ссылки на данные:
Набор данных Y
Данные X установить

Подробнее здесь: https://stackoverflow.com/questions/784 ... dependence
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»