Untitled
unknown
plain_text
2 years ago
2.0 kB
10
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