Нужна помощь в понимании части кода
Я новичок в Python. Я работаю над отсутствующими значениями данных из набора данных о ценах на жилье. Мне сказали, что замена пропущенных числовых значений прогнозируемыми значениями является более эффективным способом обработки пропущенных значений. У меня есть фрагмент кода, и я пытаюсь понять строку за строкой.
Я не понимаю эту строку:
if np.array_equal(Y_train, Y_train.astype("int")):
Это мои вопросы:
- Почему мы проверяем, равен ли массив
- что делает
astype("int")
? - На основании условия, равны они или нет, как мы решаемиспользовать классификатор или регрессор?
Если бы кто-то мог объяснить, это было бы очень полезно. Заранее спасибо.
from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier
rfr = RandomForestRegressor(n_estimators=100)
rfc = RandomForestClassifier(n_estimators=100)
X_raw = data_num.loc[:,:"SalePrice"]
X_imputed = data_num.loc[:,:"SalePrice"]
for column in X_raw:
Y = X_raw.loc[:, column]
X = X_raw.drop(column, axis=1).fillna(-99)
# ignore columns without missing values
if Y.isnull().sum() == 0:
continue
X_train = X[~Y.isnull()]
Y_train = Y[~Y.isnull()]
X_test = X[Y.isnull()]
# use classifier or regressor
if np.array_equal(Y_train, Y_train.astype("int")):
Y_predicted = rfc.fit(X_train, Y_train).predict(X_test)
else:
Y_predicted = rfr.fit(X_train, Y_train).predict(X_test)
# use '.loc[]' to write data into DataFrame
X_imputed.loc[Y.isnull(), column] = Y_predicted