Я использую набор данных по радужной оболочке из sklearn, чтобы выполнить базовое прогностическое моделирование. Я разбиваю данные на обучающие и тестовые наборы, и для списка заданных пропорций я хочу отбирать без замены разные пропорции обучающих данных. Мне нужно сделать выборку, используя np.random.choice невозможно использовать df.sample
Но то, что я делаю для выборки, кажется неправильным. Буду очень признателен за любую информацию.
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
props=[0.2,0.5,0.7,0.9]
df = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
columns= iris['feature_names'] + ['target'])
y=df[list(df.loc[:,df.columns.values =='target'])]
X=df[list(df.loc[:,df.columns.values !='target'])]
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3
,train_size=0.7)
for i in proportions:
sampleX=np.random.choice(X_train, size=i, replace = False) #----> code to sample
Хотя это образцы идеально, это образцы с заменой.
удивительно, потому что для замены установлено значение False. Я пытался установить random_state в test_train_split(), но это тоже не сработало.
что вы подразумеваете под этим семплы с заменой, вы понимаете что перезаписываете
sampleX
с каждой итерацией праваесли вы делаете np.random.choice или np.random.binomial, каждая строка используется один раз. Повторов быть не может