я впервые подхожу к библиотеке Scikit. Итак, у меня есть этот набор данных, который уже «очищен» и называется dedups:
print(dedups)
name price vehicleType \
1 A5_Sportback_2.7_Tdi 18300 coupe
2 Jeep_Grand_Cherokee_"Overland" 9800 suv
3 GOLF_4_1_4__3TÜRER 1500 kleinwagen
4 Skoda_Fabia_1.4_TDI_PD_Classic 3600 kleinwagen
5 BMW_316i___e36_Limousine___Bastlerfahrzeug__Ex... 650 limousine
... ... ... ...
371520 turbo_defekt 3200 limousine
371524 Smart_smart_leistungssteigerung_100ps 1199 cabrio
371525 Volkswagen_Multivan_T4_TDI_7DC_UY2 9200 bus
371526 VW_Golf_Kombi_1_9l_TDI 3400 kombi
371527 BMW_M135i_vollausgestattet_NP_52.720____Euro 28990 limousine
yearOfRegistration gearbox powerPS model kilometer \
1 2011 manuell 190 not-declared 125000
2 2004 automatik 163 grand 125000
3 2001 manuell 75 golf 150000
4 2008 manuell 69 fabia 90000
5 1995 manuell 102 3er 150000
... ... ... ... ... ...
371520 2004 manuell 225 leon 150000
371524 2000 automatik 101 fortwo 125000
371525 1996 manuell 102 transporter 150000
371526 2002 manuell 100 golf 150000
371527 2013 manuell 320 m_reihe 50000
monthOfRegistration fuelType brand notRepairedDamage namelen
1 5 diesel audi ja 20
2 8 diesel jeep not-declared 30
3 6 benzin volkswagen nein 18
4 7 diesel skoda nein 30
5 10 benzin bmw ja 50
... ... ... ... ... ...
371520 5 benzin seat ja 12
371524 3 benzin smart nein 37
371525 3 diesel volkswagen nein 34
371526 6 diesel volkswagen not-declared 22
371527 8 benzin bmw nein 44
[304133 rows x 13 columns]
Итак, во-первых, моя зависимая переменная - цена. Затем я применил DataFrameMapper
для преобразования по набору данных
labeled = DataFrameMapper([
(['name', 'gearbox', 'notRepairedDamage', 'model', 'brand', 'fuelType', 'vehicleType'],
OneHotEncoder(handle_unknown='ignore')),
( ['yearOfRegistration','powerPS','kilometer','monthOfRegistration', 'namelen'], None)
])
labeled_target = DataFrameMapper([
(['price'], OneHotEncoder(handle_unknown='ignore'))
])
labeled.fit(dedups)
labeled_target.fit(dedups)
Так что теперь я продолжу, создав свои данные для поезда / теста. И я делаю так:
X = labeled.transform(dedups.loc[:, dedups.columns != "price"])
Y = labeled_target.transform(dedups[['price']])
И вот в чем проблема: если я запускаю код только для Y, все в порядке, но если я запускаю и XI, я получаю эту ошибку:
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-52-6ec8ab95697a> in <module>
----> 1 X = labeled.transform(dedups.loc[:, dedups.columns != "price"])
2 #Y = labeled_target.transform(dedups[['price']])
3 print(Y)
4
5 #matplotlib.rcParams['figure.figsize'] = (12.0, 6.0)
~\Anaconda\Anaconda3\lib\site-packages\sklearn_pandas\dataframe_mapper.py in transform(self, X)
375 X the data to transform
376 """
--> 377 return self._transform(X)
378
379 def fit_transform(self, X, y=None):
~\Anaconda\Anaconda3\lib\site-packages\sklearn_pandas\dataframe_mapper.py in _transform(self, X, y, do_fit)
343 # with sparse=True
344 if not self.sparse:
--> 345 stacked = stacked.toarray()
346 else:
347 stacked = np.hstack(extracted)
~\Anaconda\Anaconda3\lib\site-packages\scipy\sparse\compressed.py in toarray(self, order, out)
1022 if out is None and order is None:
1023 order = self._swap('cf')[0]
-> 1024 out = self._process_toarray_args(order, out)
1025 if not (out.flags.c_contiguous or out.flags.f_contiguous):
1026 raise ValueError('Output array must be C or F contiguous')
~\Anaconda\Anaconda3\lib\site-packages\scipy\sparse\base.py in _process_toarray_args(self, order, out)
1184 return out
1185 else:
-> 1186 return np.zeros(self.shape, dtype=self.dtype, order=order)
1187
1188
MemoryError:
И я не могу понять проблему. Не могли бы вы мне помочь?