Utoljára frissítve: augusztus 17, 2020
a Dimenziócsökkentés felügyelet nélküli tanulási technika.
mindazonáltal adattranszformációs előfeldolgozási lépésként használható gépi tanulási algoritmusok osztályozására és regressziós prediktív modellezésére adatkészletek felügyelt tanulási algoritmusokkal.
számos dimenzió-redukciós algoritmus közül lehet választani, és nincs egyetlen legjobb algoritmus minden esetre. Ehelyett egy jó ötlet, hogy vizsgálja meg egy sor dimenzió redukciós algoritmusok és a különböző konfigurációk minden algoritmus.
ebben az oktatóanyagban megtudhatja, hogyan illesztheti és értékelheti a Python legfontosabb dimenziócsökkentő algoritmusait.
az oktatóanyag befejezése után tudni fogja:
- a Dimenziócsökkentés a numerikus bemeneti adatok alacsonyabb dimenziós ábrázolását keresi, amely megőrzi az adatok legfontosabb kapcsolatait.
- sokféle dimenzió-redukciós algoritmus létezik, és nincs egyetlen legjobb módszer az összes adatkészletre.
- hogyan lehet megvalósítani, illeszteni és értékelni a Python felső dimenziócsökkentését a scikit-learn machine learning könyvtárral.
indítsa el a projektet az új könyvemmel Data Preparation for Machine Learning, beleértve a lépésről-lépésre oktatóanyagokat és a Python forráskód fájlokat az összes példához.
kezdjük.
dimenzió redukciós algoritmusok Python
fotó: Bernard Spragg. NZ, néhány jog fenntartva.
- bemutató Áttekintés
- Dimenziócsökkentés
- szeretné elkezdeni az adatok előkészítését?
- Dimenziócsökkentő algoritmusok
- Lineáris Algebra módszerek
- sokrétű tanulási módszerek
- példák a Dimenziócsökkentés
- Scikit-Ismerje meg a könyvtár telepítését
- osztályozási adatkészlet
- főkomponens-elemzés
- Singular Value Decomposition
- Linear Discriminant Analysis
- Isomap Embedding
- Locally Linear Embedding
- Modified Locally Linear Embedding
- Further Reading
- oktatóanyagok
- API-k
- összefoglaló
- kap egy fogantyú a Modern adatok előkészítése!
- készítse elő gépi tanulási adatait percek alatt
- hozd Modern Adatelőkészítési technikák a gépi tanulási projektek
bemutató Áttekintés
Ez a bemutató három részre oszlik; ezek:
- dimenzió redukció
- dimenzió redukciós algoritmusok
- példák dimenzió redukció
- Scikit-Learn Könyvtár telepítés
- osztályozási adatkészlet
- főkomponens elemzés
- szinguláris érték bomlás
- lineáris diszkrimináns elemzés
- Izomap beágyazása
- lokálisan lineáris beágyazása
- módosított lokálisan lineáris beágyazás
Dimenziócsökkentés
a Dimenziócsökkentés a bemeneti változók számának csökkentésére szolgáló technikákra utal a képzési adatokban.
amikor magas dimenziós adatokkal foglalkozunk, gyakran hasznos a dimenzió csökkentése azáltal, hogy az adatokat egy alacsonyabb dimenziós altérbe vetítjük, amely rögzíti az adatok “lényegét”. Ezt nevezzük dimenziócsökkentésnek.
— 11.oldal, Gépi tanulás: valószínűségi perspektíva, 2012.
a nagy dimenzió több száz, ezer vagy akár millió bemeneti változót jelenthet.
A kevesebb bemeneti dimenzió gyakran ennek megfelelően kevesebb paramétert vagy egyszerűbb struktúrát jelent a gépi tanulási modellben, amelyet szabadságfokoknak neveznek. A túl sok szabadságfokú modell valószínűleg túlságosan illeszkedik a képzési adatkészlethez, és nem biztos, hogy jól teljesít az új adatokon.
kívánatos, hogy olyan egyszerű modellek legyenek, amelyek jól általánosítanak, viszont kevés bemeneti változóval rendelkező bemeneti adatok. Ez különösen igaz a lineáris modellekre, ahol a Bemenetek száma és a modell szabadságfokai gyakran szorosan összefüggenek.
a Dimenziócsökkentés egy adatelőkészítési technika, amelyet a modellezés előtt végeznek az adatokon. Az adatok tisztítása és méretezése után, valamint a prediktív modell betanítása előtt végezhető el.
… a dimenziócsökkentés a célkoncepció kompaktabb, könnyebben értelmezhető ábrázolását eredményezi, a felhasználó figyelmét a legrelevánsabb változókra összpontosítva.
— 289.oldal, adatbányászat: gyakorlati gépi tanulási eszközök és technikák, 4. kiadás, 2016.
mint ilyen, a képzési adatokon végrehajtott dimenziócsökkentést új adatokon is el kell végezni, például tesztadatkészleten, validációs adatkészleten és adatokon, amikor előrejelzést készít a végső modellel.
szeretné elkezdeni az adatok előkészítését?
vegye ki most az ingyenes 7 napos e-mail gyorstalpaló tanfolyamomat (mintakóddal).
kattintson a regisztrációhoz, és kap egy ingyenes PDF Ebook verziót a tanfolyamról.
töltse le az ingyenes Mini-tanfolyamot
Dimenziócsökkentő algoritmusok
számos algoritmus használható a dimenzió csökkentésére.
a módszerek két fő osztálya a lineáris algebra és a sokrétű tanulás.
Lineáris Algebra módszerek
a lineáris algebra mezőjéből vett Mátrixfaktorizációs módszerek használhatók dimenzió.
a mátrixfaktorizációval kapcsolatos további információkért lásd az oktatóanyagot:
- gyengéd Bevezetés a Mátrix Faktorizáláshoz a gépi tanuláshoz
néhány népszerűbb módszer a következő:
- főkomponens-elemzés
- szinguláris Értékbontás
- nem negatív mátrix Faktorizálás
sokrétű tanulási módszerek
a sokrétű tanulási módszerek a nagy dimenziós bemenet alacsonyabb dimenziós vetületét keresik, amely rögzíti a bemeneti adatok kiemelkedő tulajdonságait.
néhány népszerűbb módszer a következők:
- Izomap beágyazása
- lokálisan lineáris beágyazása
- többdimenziós skálázás
- spektrális beágyazása
- t-elosztott sztochasztikus szomszéd beágyazása
minden algoritmus kínál más megközelítést a kihívás felfedezni a természetes kapcsolatok adatok alacsonyabb dimenziókban.
nincs a legjobb dimenzió redukciós algoritmus, és nincs egyszerű módja annak, hogy megtalálja a legjobb algoritmust az adatokhoz ellenőrzött kísérletek használata nélkül.
ebben az oktatóanyagban áttekintjük, hogyan kell használni a scikit-learn könyvtár népszerű dimenziócsökkentő algoritmusainak egyes részhalmazait.
a példák biztosítják az alapot a példák másolásához és a módszerek teszteléséhez a saját adatain.
nem fogunk belemerülni az algoritmusok működésének elméletébe, vagy közvetlenül összehasonlítani őket. Egy jó kiindulási pont ebben a témában, lásd:
- bomlasztó jelek alkatrészek, scikit-learn API.
- sokrétű tanulás, scikit-learn API.
merüljünk bele.
példák a Dimenziócsökkentés
ebben a részben áttekintjük, hogyan kell használni a népszerű dimenziócsökkentés algoritmusok scikit-learn.
Ez magában foglal egy példát arra, hogy a dimenzió redukciós technikát adattranszformációként használják egy modellezési folyamatban, és értékelik az adatokra illeszkedő modellt.
a példák célja, hogy másolja-illessze be a saját projekt, és alkalmazza a módszereket a saját adatait. A scikit-learn könyvtárban vannak olyan algoritmusok, amelyeket nem mutatnak be, mert az algoritmus jellegére tekintettel közvetlenül nem használhatók adattranszformációként.
mint ilyen, minden példában szintetikus osztályozási adatkészletet fogunk használni.
Scikit-Ismerje meg a könyvtár telepítését
először telepítsük a könyvtárat.
ne hagyja ki ezt a lépést, mivel meg kell győződnie arról, hogy a legújabb verzió van telepítve.
a scikit-learn könyvtárat a PIP Python telepítő segítségével telepítheti, az alábbiak szerint:
1
|
sudo pip install scikit-learn
|
For additional installation instructions specific to your platform, see:
- Installing scikit-learn
Next, let’s confirm that the library is installed and you are using a modern version.
Run the following script to print the library version number.
1
2
3
|
# check scikit-learn version
import sklearn
print(sklearn.__version__)
|
Running the example, you should see the following version number or higher.
1
|
0.23.0
|
osztályozási adatkészlet
a make_classification() függvényt fogjuk használni egy teszt bináris osztályozási adatkészlet létrehozásához.
az adatkészlet 1000 példát tartalmaz 20 bemeneti funkcióval, amelyek közül 10 informatív, 10 pedig redundáns. Ez lehetőséget ad minden technika számára a redundáns bemeneti funkciók azonosítására és eltávolítására.
az álvéletlenszám-generátor rögzített véletlenszerű magja biztosítja, hogy ugyanazt a szintetikus adatkészletet generáljuk minden alkalommal, amikor a kód fut.
An example of creating and summarizing the synthetic classification dataset is listed below.
1
2
3
4
5
6
|
# synthetic classification dataset
from sklearn.adatkészletek importálása make_classification
# adatkészlet meghatározása
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# az adatkészlet összefoglalása
nyomtatás(X. alak, y.alak)
|
a példa futtatása létrehozza az adatkészletet, és jelentést készít az elvárásainknak megfelelő sorok és oszlopok számáról.
1
|
(1000, 20) (1000,)
|
It is a binary classification task and we will evaluate a LogisticRegression model after each dimensionality reduction transform.
a modellt az arany standard alkalmazásával értékeljük ismételt rétegzett 10-szeres keresztellenőrzés. Az átlagos és a szórás osztályozási pontosságát minden hajtogatásra és ismétlésre vonatkozóan jelenteni kell.
az alábbi példa összehasonlítási pontként értékeli a nyers adatkészlet modelljét.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# logisztikai regressziós modell értékelése nyers adatokon
a numpy import átlagából
a numpy-ból STD
importálása a sklearn-ból.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the model
model = LogisticRegression()
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores)))
|
a példa futtatása kiértékeli a logisztikai regressziót a nyers adatkészleten mind a 20 oszlopon, mintegy 82,4 százalékos osztályozási pontosságot elérve.
ezen adatok sikeres dimenziócsökkentési transzformációjának olyan modellt kell eredményeznie, amely jobb pontosságú, mint ez az alapvonal, bár ez nem minden technikával lehetséges.
megjegyzés: nem próbáljuk “megoldani” ezt az adatkészletet, csak olyan működő példákat adunk meg, amelyeket kiindulási pontként használhat.
1
|
Accuracy: 0.824 (0.034)
|
Next, we can start looking at examples of dimensionality reduction algorithms applied to this dataset.
I have made some minimal attempts to tune each method to the dataset. Minden dimenziócsökkentési módszer úgy lesz konfigurálva, hogy a 20 bemeneti oszlopot lehetőség szerint 10-re csökkentse.
egy csővezetéket fogunk használni az adattranszformáció és a modell összekapcsolására egy atomi egységgé, amelyet a keresztellenőrzési eljárással lehet értékelni; például:
1
2
3
4
|
…
# define the pipeline
steps =
model = Pipeline(steps=steps)
|
Let’s get started.
Can you get a better result for one of the algorithms?
hadd tudja az alábbi megjegyzéseket.
főkomponens-elemzés
főkomponens-elemzés vagy PCA lehet A legnépszerűbb módszer a dimenzió csökkentésére sűrű adatokkal (kevés nulla érték).
a PCA működéséről bővebben lásd az oktatóanyagot:
- Hogyan számítsuk ki a főkomponens-elemzést (PCA) a semmiből a Pythonban
a scikit-learn könyvtár biztosítja a főkomponens-elemzés PCA osztály implementációját, amely dimenziócsökkentő adatátalakításként használható. Az” n_components ” argumentum beállítható a kívánt dimenziók számának konfigurálására a transzformáció kimenetén.
az alábbiakban felsoroljuk a PCA dimenziócsökkentéssel rendelkező modell értékelésének teljes példáját.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
9 |
# értékelje a PCA-t logisztikai regressziós algoritmussal osztályozás
tól től numpy import átlag
tól től numpy import std
tól től sklearn.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.pipeline import Pipeline
a sklearn-tól.bomlás import PCA
a sklearn-ból.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores))
|
a példa futtatása kiértékeli a modellezési folyamatot dimenziócsökkentéssel és logisztikai regressziós prediktív modellel.
Megjegyzés: Az eredmények változhatnak, tekintettel az algoritmus vagy az értékelési eljárás sztochasztikus jellegére, vagy a numerikus pontosság különbségeire. Fontolja meg a példa futtatását néhányszor, és hasonlítsa össze az átlagos eredményt.
ebben az esetben nem látunk emelkedést a modell teljesítményében a PCA transzformáció használatakor.
1
|
Accuracy: 0.824 (0.034)
|
Singular Value Decomposition
Singular Value Decomposition, or SVD, is one of the most popular techniques for dimensionality reduction for sparse data (data with many zero values).
az SVD működéséről bővebben lásd az oktatóanyagot:
- hogyan számítsuk ki az SVD-t a semmiből a Python segítségével
a scikit-learn könyvtár biztosítja a Truncatedsvd osztály végrehajtását egyedi Értékbontás, amely dimenziócsökkentő adattranszformációként használható. Az” n_components ” argumentum beállítható a kívánt dimenziók számának konfigurálására a transzformáció kimenetén.
az SVD dimenziócsökkentéssel rendelkező modell értékelésének teljes példája az alábbiakban található.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
9 |
# értékelje az SVD-t logisztikai regressziós algoritmussal osztályozás
tól től numpy import átlag
tól től numpy import std
tól től sklearn.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.pipeline import Pipeline
a sklearn-tól.bomlás importálása TruncatedSVD
a sklearn-ból.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores))
|
a példa futtatása kiértékeli a modellezési folyamatot dimenziócsökkentéssel és logisztikai regressziós prediktív modellel.
Megjegyzés: Az eredmények változhatnak, tekintettel az algoritmus vagy az értékelési eljárás sztochasztikus jellegére, vagy a numerikus pontosság különbségeire. Fontolja meg a példa futtatását néhányszor, és hasonlítsa össze az átlagos eredményt.
ebben az esetben nem látunk emelkedést a modell teljesítményében az SVD transzformáció használatakor.
1
|
Accuracy: 0.824 (0.034)
|
Linear Discriminant Analysis
Linear Discriminant Analysis, or LDA, is a multi-class classification algorithm that can be used for dimensionality reduction.
a vetület dimenzióinak száma 1-re és C-1-re korlátozódik, ahol C az osztályok száma. Ebben az esetben az adatkészletünk egy bináris osztályozási probléma (két osztály), amely a dimenziók számát 1-re korlátozza.
a dimenziócsökkentés LDA-járól bővebben lásd az oktatóanyagot:
- lineáris diszkrimináns elemzés a Dimenziócsökkentés érdekében Pythonban
a scikit-learn könyvtár biztosítja a lineáris diszkrimináns elemzés LinearDiscriminantAnalysis osztály implementációját, amely dimenzió redukciós adattranszformációként használható. Az” n_components ” argumentum beállítható a kívánt dimenziók számának konfigurálására a transzformáció kimenetén.
az alábbiakban felsoroljuk az LDA dimenziócsökkentéssel rendelkező modell értékelésének teljes példáját.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
9 |
# értékelje az Lda-t logisztikai regressziós algoritmussal osztályozás
tól től numpy import átlag
tól től numpy import std
tól től sklearn.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.pipeline import Pipeline
a sklearn-tól.diszkriminant_analysis import LinearDiscriminantAnalysis
a sklearn-tól.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores))
|
a példa futtatása kiértékeli a modellezési folyamatot dimenziócsökkentéssel és logisztikai regressziós prediktív modellel.
Megjegyzés: Az eredmények változhatnak, tekintettel az algoritmus vagy az értékelési eljárás sztochasztikus jellegére, vagy a numerikus pontosság különbségeire. Fontolja meg a példa futtatását néhányszor, és hasonlítsa össze az átlagos eredményt.
ebben az esetben a teljesítmény enyhe emelkedését láthatjuk a nyers adatok kiindulási illeszkedéséhez képest.
1
|
Accuracy: 0.825 (0.034)
|
Isomap Embedding
Isomap Embedding, or Isomap, creates an embedding of the dataset and attempts to preserve the relationships in the dataset.
a scikit-learn könyvtár biztosítja az Izomap osztály implementációját az Izomap Beágyazásnak, amely dimenziócsökkentő adattranszformációként használható. Az” n_components ” argumentum beállítható a kívánt dimenziók számának konfigurálására a transzformáció kimenetén.
az SVD dimenziócsökkentéssel rendelkező modell értékelésének teljes példája az alábbiakban található.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
9 |
# az izomap értékelése logisztikai regressziós algoritmussal osztályozás
tól től numpy import átlag
tól től numpy import std
tól től sklearn.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.pipeline import Pipeline
a sklearn-tól.sokrétű import Izomap
a sklearn-tól.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores))
|
a példa futtatása kiértékeli a modellezési folyamatot dimenziócsökkentéssel és logisztikai regressziós prediktív modellel.
Megjegyzés: Az eredmények változhatnak, tekintettel az algoritmus vagy az értékelési eljárás sztochasztikus jellegére, vagy a numerikus pontosság különbségeire. Fontolja meg a példa futtatását néhányszor, és hasonlítsa össze az átlagos eredményt.
ebben az esetben láthatjuk a teljesítmény emelkedését az Izomap adatok transzformációjával a nyers adatok alapszintjéhez képest.
1
|
Accuracy: 0.888 (0.029)
|
Locally Linear Embedding
Locally Linear Embedding, or LLE, creates an embedding of the dataset and attempts to preserve the relationships between neighborhoods in the dataset.
a scikit-learn könyvtár biztosítja a LocallyLinearEmbedding osztály lokálisan lineáris beágyazása, hogy lehet használni, mint egy dimenzió redukciós adat transzformáció. Az” n_components ” argumentum beállítható a kívánt dimenziók számának konfigurálására a transzformáció kimenetén
az alábbiakban felsoroljuk az LLE dimenziócsökkentéssel rendelkező modell értékelésének teljes példáját.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
9 |
# értékelje az lle-t és a logisztikai regressziókat a taxonómia számára
a numpy import átlagából
a numpy import std-ből
a sklearn-ból.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.pipeline import Pipeline
a sklearn-tól.sokrétű import LocallyLinearEmbedding
származó sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores))
|
a példa futtatása kiértékeli a modellezési folyamatot dimenziócsökkentéssel és logisztikai regressziós prediktív modellel.
Megjegyzés: Az eredmények változhatnak, tekintettel az algoritmus vagy az értékelési eljárás sztochasztikus jellegére, vagy a numerikus pontosság különbségeire. Fontolja meg a példa futtatását néhányszor, és hasonlítsa össze az átlagos eredményt.
ebben az esetben a teljesítmény emelkedését láthatjuk az LLE adattranszformációval a nyers adatok kiindulási illeszkedéséhez képest.
1
|
Accuracy: 0.886 (0.028)
|
Modified Locally Linear Embedding
Modified Locally Linear Embedding, or Modified LLE, is an extension of Locally Linear Embedding that creates multiple weighting vectors for each neighborhood.
a scikit-learn könyvtár biztosítja a LocallyLinearEmbedding osztály végrehajtását módosított lokálisan lineáris beágyazást, hogy lehet használni, mint egy dimenzió redukciós adat transzformáció. A “method” argumentumot “modified” értékre kell állítani, az “n_components” argumentumot pedig úgy lehet beállítani, hogy beállítsa a transzformáció kimenetében a kívánt dimenziók számát, amelynek kisebbnek kell lennie, mint az “n_neighbors” argumentum.
Az alábbiakban felsoroljuk a módosított lle dimenziócsökkentéssel rendelkező modell értékelésének teljes példáját.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
9 |
# a módosított lle és logisztikai regressziók értékelése osztályozás
tól től numpy import átlag
tól től numpy import std
tól től sklearn.adatkészletek importálása make_classification
a sklearn-ból.model_selection import cross_val_score
a sklearn-ból.model_selection import RepeatedStratifiedKFold
a sklearn-ból.pipeline import Pipeline
a sklearn-tól.sokrétű import LocallyLinearEmbedding
származó sklearn.linear_model import LogisticRegression
# define dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_redundant=10, random_state=7)
# define the pipeline
steps =
model = Pipeline(steps=steps)
# evaluate model
cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1)
n_scores = cross_val_score(model, X, y, scoring=’accuracy’, cv=cv, n_jobs=-1)
# report performance
print(‘Accuracy: %.3f (%.3f) ‘ % (mean(n_scores), std(n_scores))
|
a példa futtatása kiértékeli a modellezési folyamatot dimenziócsökkentéssel és logisztikai regressziós prediktív modellel.
Megjegyzés: Az eredmények változhatnak, tekintettel az algoritmus vagy az értékelési eljárás sztochasztikus jellegére, vagy a numerikus pontosság különbségeire. Fontolja meg a példa futtatását néhányszor, és hasonlítsa össze az átlagos eredményt.
ebben az esetben a módosított LLE adattranszformációval a teljesítmény növekedését láthatjuk a nyers adatok kiindulási illeszkedéséhez képest.
1
|
Accuracy: 0.846 (0.036)
|
Further Reading
This section provides more resources on the topic if you are looking to go deeper.
oktatóanyagok
- Bevezetés a Dimenziócsökkentés Gépi tanulás
- főkomponens analízis dimenzió csökkentése Python
- szinguláris érték bomlás dimenzió csökkentése Python
- lineáris diszkrimináns analízis dimenzió csökkentése Python
API-k
- bomló jelek alkatrészek, scikit-learn API.
- sokrétű tanulás, scikit-learn API.
összefoglaló
ebben az oktatóanyagban felfedezted, hogyan illesztheted be és értékelheted a Python legfontosabb dimenziócsökkentő algoritmusait.
konkrétan megtanultad:
- a Dimenziócsökkentés a numerikus bemeneti adatok alacsonyabb dimenziós ábrázolását keresi, amely megőrzi az adatok legfontosabb kapcsolatait.
- sokféle dimenzió-redukciós algoritmus létezik, és nincs egyetlen legjobb módszer az összes adatkészletre.
- hogyan lehet megvalósítani, illeszteni és értékelni a Python felső dimenziócsökkentését a scikit-learn machine learning könyvtárral.
van kérdése?
tegye fel kérdéseit az alábbi megjegyzésekben, és mindent megteszek, hogy válaszoljak.
kap egy fogantyú a Modern adatok előkészítése!
készítse elő gépi tanulási adatait percek alatt
…csak néhány sor python kódot
fedezze fel, hogyan az én új Ebook:
Data Preparation for Machine Learning
Ez biztosítja önálló tanulás oktatóanyagok teljes munka kódot:
funkció kiválasztása, szer, adatok tisztítása, adatok átalakítja, méretezés, dimenzió csökkentése, és még sok más…
hozd Modern Adatelőkészítési technikák
a gépi tanulási projektek
lásd, mi van benne