numeric_transformer = Pipeline(
steps=[("scaler", StandardScaler()),]
)
categorical_transformer = Pipeline(
steps=[
("encoder", OneHotEncoder(handle_unknown="ignore")),
]
)
import pandas as pd
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
X = df.drop(columns=['Status'])
y = df['Status']
numeric_features = [" ",..]
categorical_features = ["",..]
# Вот мы создаем Pipeline's для наших трансформаций, пока по одной на каждую часть но это для начала
numeric_transformer = Pipeline(
steps=[("scaler", StandardScaler()),]
)
categorical_transformer = Pipeline(
steps=[
("encoder", OneHotEncoder(handle_unknown="ignore")),
]
)
preprocessor = ColumnTransformer(
transformers=[
("num", numeric_transformer, numeric_features),
("cat", categorical_transformer, categorical_features),
]
)
наш финальный пайп где мы собрали трансформеры который имеет поведение модели.
clf = Pipeline(
steps=[("preprocessor", preprocessor), ("classifier", RandomForestClassifier(random_state=42))]
)
#теперь когда мы создали план действий делим данные
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
clf.fit(X_train, y_train)
print("model score for training set: %.3f" % clf.score(X_train, y_train))
print("model score for testing set: %.3f" % clf.score(X_test, y_test))
X_train[numerical_cols]=minMax_scaler.fit_transform(X_train[numerical_cols])
X_test[numerical_cols]=minMax_scaler.transform(X_test[numerical_cols])
scaler = StandardScaler()
X_train_transformed = scaler.fit_transform(X_train)
model = RandomForestClassifier(max_depth=2, random_state=0).fit(X_train_transformed, y_train)
X_test_transformed = scaler.transform(X_test)
model.predict(X_test_transformed)
Численные значения в итоге после препроцессинга обязаны оказаться все примерно в одном диапазоне числовом или нет?
soup.find('h1', class_='section_hero__title').text
Ну это не точно у меня то html вашего нету, что бы я мог точно указать. (df == '').sum()
columns = df1.columns
df2 = df2.reset_index(drop=True).T.reset_index().T
df2.columns = columns
df2.reset_index(drop=True)
потом сджоинить его с основным вашим фреймом
например либо
pd.concat([main_df,df],axis=1,ignore_index=True)
либо
pd.merge(main_df,df)
где main_df это ваш основной. Либо иначе поработатйте (напрмер можно str.split()) вот как его применять https://pandas.pydata.org/docs/reference/api/panda..., но иметь такую колонку как у вас = иметь проблемы с ней в будущем.