skmultilearn.embedding.OpenNetworkEmbedder(graph_builder, embedding, dimension, aggregation_function, normalize_weights, param_dict=None)[source] ¶ Bases: object
Embed the label space using a label network embedder from OpenNE
Implements an OpenNE based LNEMLC: label network embeddings for multi-label classification.
| Parameters: |
|
|---|
If you use this classifier please cite the relevant embedding method paper and the label network embedding for multi-label classification paper:
@article{zhang2007ml, title={ML-KNN: A lazy learning approach to multi-label learning}, author={Zhang, Min-Ling and Zhou, Zhi-Hua}, journal={Pattern recognition}, volume={40}, number={7}, pages={2038--2048}, year={2007}, publisher={Elsevier} }
Example code for using this embedder looks like this:
from skmultilearn.embedding import OpenNetworkEmbedder, EmbeddingClassifier from sklearn.ensemble import RandomForestRegressor from skmultilearn.adapt import MLkNN from skmultilearn.cluster import LabelCooccurrenceGraphBuilder graph_builder = LabelCooccurrenceGraphBuilder(weighted=True, include_self_edges=False) openne_line_params = dict(batch_size=1000, negative_ratio=5) clf = EmbeddingClassifier( OpenNetworkEmbedder(graph_builder, 'LINE', 4, 'add', True, openne_line_params), RandomForestRegressor(n_estimators=10), MLkNN(k=5) ) clf.fit(X_train, y_train) predictions = clf.predict(X_test)