Untitled
unknown
plain_text
a year ago
2.0 kB
6
Indexable
num_columns = [c for c in df_housing.columns if c != 'ocean_proximity'] cat_features = 'ocean_proximity' num_features = [c for c in num_columns if c != 'median_house_value'] target = 'median_house_value' #предсказываем median_house_value stages = [] #преобразование категориальных переменных: ocean_proximity cat_features = ['ocean_proximity'] for categoricalCol in cat_features: #преобразование категориальных колонок в бинарные вектора stringIndexer = StringIndexer(inputCol = categoricalCol, outputCol = categoricalCol + 'Index', handleInvalid = 'keep') encoder = OneHotEncoder(inputCol=stringIndexer.getOutputCol(), outputCol=categoricalCol + "classVec") stages += [stringIndexer, encoder] #преобразование числовых переменных for numCol in num_features: numerical_assembler = VectorAssembler(inputCols=numCol, outputCol='numerical_features') df_housing = numerical_assembler.transform(df_housing) standard_scaler = StandardScaler(inputCol=numCol, outputCol='numerical_features_scaled') df_housing = standard_scaler.fit(df_housing).transform(df_housing) #преобразование нескольких колонок в вектор-колонку - признаки assembler = VectorAssembler(inputCols=assemblerInputs, outputCol="features") stages += [assembler] ## делим данные на обучающую и тестовую выборки (30% тестовая) (trainingData, testData) = df_housing.randomSplit([0.7, 0.3]) #тренируем модель Linear = LinearRegression(featuresCol="features", labelCol=target, maxIter=10) stages += [Linear] # задаем план stages для обучения модели pipeline = Pipeline(stages=stages)
Editor is loading...
Leave a Comment