Hallo Ich bin ziemlich neu im maschinellen Lernen mit Scikit-lernen, aber ich habe eine Frage.Sklearn - SVM gewichtete Funktionen
Ist es möglich, SVM einige Merkmale meiner Vektordaten mit höherer Wichtigkeit oder Gewicht zu erkennen. Ich weiß nicht, die richtige therm:/
Hier ist Beispiel dafür, was ich will:
Lasst uns sagen, dass wir Haufen vecotrs in 2D-Array haben:
dt = [
[x1, y1, z1, q1],
[x2, y2, z2, q2],
[x3, y3, z3, q3],
[x4, y4, z4, q4]]
und Zieldatenvektor:
Was ich wissen möchte, wie kann ich zum Beispiel alle q Funktionen für jeden der Vektoren in dt wichtiger als der Rest der Funktionen machen.
Ich weiß, wie man Daten nach Sätzen ausgleicht oder sample_weight setzt, aber keiner kann mir mit diesem Problem helfen.
Prost
Ok Ich verstehe jetzt, wie man auf Daten zugreift, die Gewichtseigenschaften darstellen, aber gibt es eine Weise, die ich sie ändern kann. Die Dokumentation besagt eindeutig, dass coef_ eine Readonly-Eigenschaft ist. Ich möchte meinen Klassifikator dazu bringen, einige der Funktionen wichtiger mit Gewalt zu nehmen. – Domagoj
Ich kann eine Annahme nur ohne Verwendung der Bibliothek ausdrücken. SVM - es ist lineare Methode und es ist empfindlich auf Funktionen skaliert. Sie können StandartScaler (http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html) verwenden, um sie an eine Skalierung anzupassen (nicht notwendig, aber manchmal kann dies die Effizienz Ihrer Algorithmus). Dann können Sie Ihre Trainingsdaten selbst vorverarbeiten und alle Funktionen, die Sie als nicht wichtig ansehen, mit coef <1 skalieren (vergessen Sie nicht, diese zu speichern, um diese Skalierung auf die Testgruppe oder reale Daten anzuwenden). Sie brauchen mehr Experimente :) – mrEvgenX
Danke Ich werde diesen Ansatz versuchen – Domagoj