Читать книгу Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron - Страница 115
Komplexität der Berechnung
ОглавлениеDie Normalengleichung berechnet die Inversion von XT · X, eine (n+1) × (n+1)-Matrix (wobei n die Anzahl Merkmale ist). Die Komplexität der Berechnung dieser Matrizeninversion beträgt typischerweise etwa O(n2,4) bis O(n3) (abhängig von der Implementierung). Anders ausgedrückt, wenn Sie die Anzahl Merkmale verdoppeln, erhöht sich die Rechenzeit etwa um den Faktor 22,4 = 5,3 bis 23 = 8.
Der SVD-Ansatz der Klasse LinearRegression von Scikit-Learn liegt bei O(n2). Verdoppeln Sie die Anzahl an Merkmalen, multiplizieren Sie die Rechenzeit ungefähr mit 4.
Sowohl die Normalengleichung wie auch der SVD-Ansatz werden sehr langsam, wenn die Anzahl Merkmale groß wird (z.B. 100. 000). Andererseits sind beide in Bezug auf die Anzahl an Instanzen im Trainingsdatensatz linear (O(m)), sodass sie große Trainingsdatensätze effizient verarbeiten können, sofern diese in den Speicher passen. |
Wenn Sie Ihr lineares Regressionsmodell erst einmal trainiert haben (mithilfe der Normalengleichung oder einem anderen Algorithmus), sind die Vorhersagen sehr schnell: Die Komplexität der Berechnung verhält sich sowohl in Bezug auf die Anzahl vorherzusagender Datenpunkte als auch auf die Anzahl Merkmale linear. Anders ausgedrückt, das Treffen einer Vorhersage dauert für doppelt so viele Datenpunkte (oder doppelt so viele Merkmale) nur etwa doppelt so lange.
Wir werden uns nun völlig andere Verfahren zum Trainieren eines linearen Regressionsmodells ansehen, die sich besser für Fälle eignen, in denen es eine große Anzahl Merkmale oder zu viele Trainingsdaten gibt, als dass sie sich im Speicher unterbringen ließen.