Scikit-learn: Pastikan semua atribut didokumentasikan

Dibuat pada 12 Jul 2019  ·  79Komentar  ·  Sumber: scikit-learn/scikit-learn

seperti dibahas di # 13385 kita perlu memastikan semua atribut didokumentasikan.

Jika Anda ingin mengerjakan ini, Anda harus memilih submodul tertentu dan memperbaiki semua ketidakcocokan dokumentasi atribut di submodul itu.

Berikut skrip untuk menemukan yang tersisa (mungkin ada beberapa positif palsu):

import numpy as np
from sklearn.base import clone
from sklearn.utils.testing import all_estimators
from sklearn.utils.estimator_checks import pairwise_estimator_convert_X, enforce_estimator_tags_y
from numpydoc import docscrape

ests = all_estimators()

for name, Est in ests:
    try:
        estimator_orig = Est()
    except:
        continue
    rng = np.random.RandomState(0)
    X = pairwise_estimator_convert_X(rng.rand(40, 10), estimator_orig)
    X = X.astype(object)
    y = (X[:, 0] * 4).astype(np.int)
    est = clone(estimator_orig)
    y = enforce_estimator_tags_y(est, y)
    try:
        est.fit(X, y)
    except:
        continue
    fitted_attrs = [(x, getattr(est, x, None))
                    for x in est.__dict__.keys() if x.endswith("_")
                    and not x.startswith("_")]
    doc = docscrape.ClassDoc(type(est))
    doc_attributes = []
    incorrect = []
    for att_name, type_definition, param_doc in doc['Attributes']:
        if not type_definition.strip():
            if ':' in att_name and att_name[:att_name.index(':')][-1:].strip():
                incorrect += [name +
                              ' There was no space between the param name and '
                              'colon (%r)' % att_name]
            elif name.rstrip().endswith(':'):
                incorrect += [name +
                              ' Parameter %r has an empty type spec. '
                              'Remove the colon' % (att_name.lstrip())]

        if '*' not in att_name:
            doc_attributes.append(att_name.split(':')[0].strip('` '))
    assert incorrect == []
    fitted_attrs_names = [x[0] for x in fitted_attrs]

    bad = sorted(list(set(fitted_attrs_names) ^ set(doc_attributes)))
    if len(bad) > 0:
        msg = '{}\n'.format(name) + '\n'.join(bad)
        print("Docstring Error: Attribute mismatch in " + msg)


Documentation Easy good first issue help wanted

Komentar yang paling membantu

Docstrings atribut untuk setiap estimator tidak ada

Referensi masalah ini di PR Anda

  • [x] ARDRegresi, [intercept_]
  • [x] AdaBoostClassifier, [base_estimator_]
  • [x] AdaBoostRegressor, [base_estimator_]
  • [x] AdditiveChi2Sampler, [sample_interval_]
  • [x] AgglomerativeClustering, [n_components_] (tidak digunakan lagi)
  • [x] BaggingClassifier, [n_features_]
  • [x] BaggingRegressor, [base_estimator_, n_features_]
  • [x] BayesianGaussianMixture, [mean_precision_prior, mean_precision_prior_]
  • [x] BayesianRidge, [X_offset_, X_scale_]
  • [x] BernoulliNB, [coef_, intercept_]
  • [x] BernoulliRBM, [h_samples_]
  • [] Birch, [fit_, partial_fit_]
  • [] CCA, [coef_, x_mean_, x_std_, y_mean_, y_std_]
  • [x] CheckingClassifier, [kelas_]
  • [x] ComplementNB, [coef_, intercept_]
  • [x] CountVectorizer, [stop_words_, vocabulary_]
  • [] DecisionTreeRegressor, [kelas_, n_classes_]
  • [x] DictVectorizer, [feature_names_, vocabulary_]
  • [] DummyClassifier, [output_2d_]
  • [] DummyRegressor, [output_2d_]
  • [] ElasticNet, [dual_gap_]
  • [] ElasticNetCV, [dual_gap_]
  • [] EllipticEnvelope, [dist_, raw_covariance_, raw_location_, raw_support_]
  • [x] ExtraTreeClassifier, [feature_importances_]
  • [] ExtraTreeRegressor, [class_, feature_importances_, n_classes_]
  • [x] ExtraTreesClassifier, [base_estimator_]
  • [x] ExtraTreesRegressor, [base_estimator_]
  • [x] FactorAnalysis, [mean_]
  • [] FiturAgglomerasi, [n_components_]
  • [x] GaussianProcessClassifier, [base_estimator_]
  • [x] GaussianRandomProjection, [components_]
  • [x] GradientBoostingClassifier, [max_features_, n_classes_, n_features_, oob_improvement_]
  • [x] GradientBoostingRegressor, [max_features_, n_classes_, n_estimators_, n_features_, oob_improvement_]
  • [x] HistGradientBoostingClassifier, [bin_mapper_, class_, do_early_stopping_, loss_, n_features_, scorer_]
  • [x] HistGradientBoostingRegressor, [bin_mapper_, do_early_stopping_, loss_, n_features_, scorer_]
  • [x] IncrementalPCA, [batch_size_]
  • [x] IsolationForest, [base_estimator_, estimators_features_, n_features_]
  • [x] Regresi Isotonik, [X_maks_, X_min_, f_]
  • [x] Komputer Iteratif, [kondisi_acak_]
  • [x] KNeighboursClassifier, [class_, effective_metric_, effective_metric_params_, keluaran_2d_]
  • [x] KNeighboursRegressor, [effective_metric_, effective_metric_params_]
  • [x] KernelCenterer, [K_fit_all_, K_fit_rows_]
  • [x] KernelDensity, [tree_]
  • [x] KernelPCA, [X_transformed_fit_, dual_coef_]
  • [x] LabelBinarizer, [kelas_, sparse_input_, y_type_]
  • [x] LabelEncoder, [kelas_]
  • [x] LarsCV, [active_]
  • [x] Laso, [dual_gap_]
  • [x] LassoLarsCV, [active_]
  • [x] LassoLarsIC, [alphas_]
  • [x] LatentDirichletAllocation, [bound_, doc_topic_prior_, exp_dirichlet_component_, random_state_, topic_word_prior_]
  • [x] LinearDiscriminantAnalysis, [covariance_]
  • [x] LinearRegression, [rank_, singular_]
  • [x] LinearSVC, [kelas_]
  • [x] LocalOutlierFactor, [effective_metric_, effective_metric_params_]
  • [x] MDS, [matriks_ ketidaksamaan_, n_iter_]
  • [x] MLPClassifier, [kerugian_baik_, loss_curve_, t_]
  • [x] MLPRegressor, [kerugian_terbaik_, kerugian_curve_, t_]
  • [x] MinMaxScaler, [n_samples_seen_]
  • [x] MiniBatchDictionaryLearning, [iter_offset_]
  • [x] MiniBatchKMeans, [counts_, init_size_, n_iter_]
  • [x] MultiLabelBinarizer, [kelas_]
  • [x] MultiTaskElasticNet, [dual_gap_, eps_, sparse_coef_]
  • [x] MultiTaskElasticNetCV, [dual_gap_]
  • [x] MultiTugasLasso, [dual_gap_, eps_, sparse_coef_]
  • [x] MultiTugasLassoCV, [dual_gap_]
  • [x] NearestCentroid, [kelas_]
  • [x] Tetangga Terdekat, [efektif_metrik_, efektif_metrik_params_]
  • [x] Analisis Komponen Lingkungan, [status_akur_]
  • [x] NuSVC, [class_weight_, fit_status_, probA_, probB_, shape_fit_]
  • [] NuSVR, [class_weight_, fit_status_, n_support_, probA_, probB_, shape_fit_]
  • [x] OAS, [location_]
  • [] OneClassSVM, [class_weight_, fit_status_, n_support_, probA_, probB_, shape_fit_]
  • [x] OneVsOneClassifier, [n_classes_]
  • [x] OneVsRestClassifier, [coef_, intercept_, n_classes_]
  • [x] OrthogonalMatchingPursuit, [n_nonzero_coefs_]
  • [] PLS Kanonikal, [coef_, x_mean_, x_std_, y_mean_, y_std_]
  • [x] PLSRegresi, [x_mean_, x_std_, y_mean_, y_std_]
  • [] PLSSVD, [x_mean_, x_std_, y_mean_, y_std_]
  • [x] PassiveAggressiveClassifier, [loss_function_, t_]
  • [x] PassiveAggressiveRegressor, [t_]
  • [x] Perceptron, [loss_function_]
  • [x] QuadraticDiscriminantAnalysis, [kelas_, kovarians_]
  • [x] RBFSampler, [random_offset_, random_weights_]
  • [] RFE, [kelas_]
  • [] RFECV, [kelas_]
  • [x] RadiusNeighboursClassifier, [kelas_, efektif_metrik_, efektif_metrik_params_, keluaran_2d_]
  • [x] RadiusNeighboursRegressor, [effective_metric_, effective_metric_params_]
  • [x] RandomForestClassifier, [oob_decision_function_, oob_score_]
  • [x] RandomForestRegressor, [oob_prediction_, oob_score_]
  • [x] RandomTreesEmbedding, [base_estimator_, feature_importances_, n_features_, n_outputs_, one_hot_encoder_]
  • [x] RidgeCV, [cv_values_]
  • [x] RidgeClassifier, [kelas_]
  • [x] RidgeClassifierCV, [cv_values_]
  • [x] SGDClassifier, [kelas_, t_]
  • [x] SGDRegressor, [average_coef_, average_intercept_]
  • [x] SVC, [class_weight_, shape_fit_]
  • [] SVR, [class_weight_, fit_status_, n_support_, probA_, probB_, shape_fit_]
  • [x] SelectKBest, [pvalues_, score_]
  • [x] ShrunkCovariance, [penyusutan]
  • [x] SkewedChi2Sampler, [random_offset_, random_weights_]
  • [x] SparseRandomProjection, [components_, density_]
  • [x] SpectralEmbedding, [n_neighbours_]
  • [x] TfidfVectorizer, [stop_words_, vocabulary_]

Semua 79 komentar

Saya telah menemukan setidaknya satu ketidakcocokan dalam dokumentasi atribut dalam deskripsi kelas NMF. Saya rasa saya bisa mengambil sebagian dari pekerjaan ini. Saya hampir siap untuk mengusulkan beberapa perubahan dalam submodul decomposition dan random_projection .

Docstrings atribut untuk setiap estimator tidak ada

Referensi masalah ini di PR Anda

  • [x] ARDRegresi, [intercept_]
  • [x] AdaBoostClassifier, [base_estimator_]
  • [x] AdaBoostRegressor, [base_estimator_]
  • [x] AdditiveChi2Sampler, [sample_interval_]
  • [x] AgglomerativeClustering, [n_components_] (tidak digunakan lagi)
  • [x] BaggingClassifier, [n_features_]
  • [x] BaggingRegressor, [base_estimator_, n_features_]
  • [x] BayesianGaussianMixture, [mean_precision_prior, mean_precision_prior_]
  • [x] BayesianRidge, [X_offset_, X_scale_]
  • [x] BernoulliNB, [coef_, intercept_]
  • [x] BernoulliRBM, [h_samples_]
  • [] Birch, [fit_, partial_fit_]
  • [] CCA, [coef_, x_mean_, x_std_, y_mean_, y_std_]
  • [x] CheckingClassifier, [kelas_]
  • [x] ComplementNB, [coef_, intercept_]
  • [x] CountVectorizer, [stop_words_, vocabulary_]
  • [] DecisionTreeRegressor, [kelas_, n_classes_]
  • [x] DictVectorizer, [feature_names_, vocabulary_]
  • [] DummyClassifier, [output_2d_]
  • [] DummyRegressor, [output_2d_]
  • [] ElasticNet, [dual_gap_]
  • [] ElasticNetCV, [dual_gap_]
  • [] EllipticEnvelope, [dist_, raw_covariance_, raw_location_, raw_support_]
  • [x] ExtraTreeClassifier, [feature_importances_]
  • [] ExtraTreeRegressor, [class_, feature_importances_, n_classes_]
  • [x] ExtraTreesClassifier, [base_estimator_]
  • [x] ExtraTreesRegressor, [base_estimator_]
  • [x] FactorAnalysis, [mean_]
  • [] FiturAgglomerasi, [n_components_]
  • [x] GaussianProcessClassifier, [base_estimator_]
  • [x] GaussianRandomProjection, [components_]
  • [x] GradientBoostingClassifier, [max_features_, n_classes_, n_features_, oob_improvement_]
  • [x] GradientBoostingRegressor, [max_features_, n_classes_, n_estimators_, n_features_, oob_improvement_]
  • [x] HistGradientBoostingClassifier, [bin_mapper_, class_, do_early_stopping_, loss_, n_features_, scorer_]
  • [x] HistGradientBoostingRegressor, [bin_mapper_, do_early_stopping_, loss_, n_features_, scorer_]
  • [x] IncrementalPCA, [batch_size_]
  • [x] IsolationForest, [base_estimator_, estimators_features_, n_features_]
  • [x] Regresi Isotonik, [X_maks_, X_min_, f_]
  • [x] Komputer Iteratif, [kondisi_acak_]
  • [x] KNeighboursClassifier, [class_, effective_metric_, effective_metric_params_, keluaran_2d_]
  • [x] KNeighboursRegressor, [effective_metric_, effective_metric_params_]
  • [x] KernelCenterer, [K_fit_all_, K_fit_rows_]
  • [x] KernelDensity, [tree_]
  • [x] KernelPCA, [X_transformed_fit_, dual_coef_]
  • [x] LabelBinarizer, [kelas_, sparse_input_, y_type_]
  • [x] LabelEncoder, [kelas_]
  • [x] LarsCV, [active_]
  • [x] Laso, [dual_gap_]
  • [x] LassoLarsCV, [active_]
  • [x] LassoLarsIC, [alphas_]
  • [x] LatentDirichletAllocation, [bound_, doc_topic_prior_, exp_dirichlet_component_, random_state_, topic_word_prior_]
  • [x] LinearDiscriminantAnalysis, [covariance_]
  • [x] LinearRegression, [rank_, singular_]
  • [x] LinearSVC, [kelas_]
  • [x] LocalOutlierFactor, [effective_metric_, effective_metric_params_]
  • [x] MDS, [matriks_ ketidaksamaan_, n_iter_]
  • [x] MLPClassifier, [kerugian_baik_, loss_curve_, t_]
  • [x] MLPRegressor, [kerugian_terbaik_, kerugian_curve_, t_]
  • [x] MinMaxScaler, [n_samples_seen_]
  • [x] MiniBatchDictionaryLearning, [iter_offset_]
  • [x] MiniBatchKMeans, [counts_, init_size_, n_iter_]
  • [x] MultiLabelBinarizer, [kelas_]
  • [x] MultiTaskElasticNet, [dual_gap_, eps_, sparse_coef_]
  • [x] MultiTaskElasticNetCV, [dual_gap_]
  • [x] MultiTugasLasso, [dual_gap_, eps_, sparse_coef_]
  • [x] MultiTugasLassoCV, [dual_gap_]
  • [x] NearestCentroid, [kelas_]
  • [x] Tetangga Terdekat, [efektif_metrik_, efektif_metrik_params_]
  • [x] Analisis Komponen Lingkungan, [status_akur_]
  • [x] NuSVC, [class_weight_, fit_status_, probA_, probB_, shape_fit_]
  • [] NuSVR, [class_weight_, fit_status_, n_support_, probA_, probB_, shape_fit_]
  • [x] OAS, [location_]
  • [] OneClassSVM, [class_weight_, fit_status_, n_support_, probA_, probB_, shape_fit_]
  • [x] OneVsOneClassifier, [n_classes_]
  • [x] OneVsRestClassifier, [coef_, intercept_, n_classes_]
  • [x] OrthogonalMatchingPursuit, [n_nonzero_coefs_]
  • [] PLS Kanonikal, [coef_, x_mean_, x_std_, y_mean_, y_std_]
  • [x] PLSRegresi, [x_mean_, x_std_, y_mean_, y_std_]
  • [] PLSSVD, [x_mean_, x_std_, y_mean_, y_std_]
  • [x] PassiveAggressiveClassifier, [loss_function_, t_]
  • [x] PassiveAggressiveRegressor, [t_]
  • [x] Perceptron, [loss_function_]
  • [x] QuadraticDiscriminantAnalysis, [kelas_, kovarians_]
  • [x] RBFSampler, [random_offset_, random_weights_]
  • [] RFE, [kelas_]
  • [] RFECV, [kelas_]
  • [x] RadiusNeighboursClassifier, [kelas_, efektif_metrik_, efektif_metrik_params_, keluaran_2d_]
  • [x] RadiusNeighboursRegressor, [effective_metric_, effective_metric_params_]
  • [x] RandomForestClassifier, [oob_decision_function_, oob_score_]
  • [x] RandomForestRegressor, [oob_prediction_, oob_score_]
  • [x] RandomTreesEmbedding, [base_estimator_, feature_importances_, n_features_, n_outputs_, one_hot_encoder_]
  • [x] RidgeCV, [cv_values_]
  • [x] RidgeClassifier, [kelas_]
  • [x] RidgeClassifierCV, [cv_values_]
  • [x] SGDClassifier, [kelas_, t_]
  • [x] SGDRegressor, [average_coef_, average_intercept_]
  • [x] SVC, [class_weight_, shape_fit_]
  • [] SVR, [class_weight_, fit_status_, n_support_, probA_, probB_, shape_fit_]
  • [x] SelectKBest, [pvalues_, score_]
  • [x] ShrunkCovariance, [penyusutan]
  • [x] SkewedChi2Sampler, [random_offset_, random_weights_]
  • [x] SparseRandomProjection, [components_, density_]
  • [x] SpectralEmbedding, [n_neighbours_]
  • [x] TfidfVectorizer, [stop_words_, vocabulary_]

Saya dapat menerima ketidakcocokan dokumentasi atribut submodule tree , yang meliputi:

  • DecisionTreeRegressor, [kelas_, n_classes_]
  • ExtraTreeClassifier, [class_, max_features_, n_classes_, n_features_, n_outputs_, tree_]
  • ExtraTreeRegressor, [class_, max_features_, n_classes_, n_features_, n_outputs_, tree_]

Saya sedang mengerjakan LinearRegression, [rank_, singular_].

Saya sedang mengerjakan LinearSVC, [n_iter_] dan LinearSVR, [n_iter_]

Saya akan mengambil Gradient boosting yaitu

  • GradientBoostingClassifier [base_estimator_, max_features_, n_classes_, n_features_]

    • GradientBoostingRegressor [base_estimator_, kelas_, max_features_, n_estimators_, n_features_]

lupakan, salah membaca di mana atribut hilang dan di mana tidak

Sepertinya ada juga atribut classes_ tidak terdokumentasi untuk pengklasifikasi naive_bayes submodule. Saya sudah mulai memperbaikinya.

Saya akan mengerjakan TfidfVectorizer, [fixed_vocabulary_]

Saya akan mengerjakan:

  • RandomForestClassifier, [base_estimator_]
  • RandomForestRegressor, [base_estimator_, n_classes_]
  • ExtraTreesClassifier, [base_estimator_]
  • ExtraTreesRegressor, [base_estimator_, n_classes_]

Saya sedang mengerjakan:

  • SGDClassifier, [average_coef_, average_intercept_, standard_coef_, standard_intercept_]
  • SGDRegressor, [standard_coef_, standard_intercept_]

EDIT: membuka masalah untuk mengubah atribut ini dari publik menjadi pribadi (referensi: # 14364)

Saya sedang mengerjakan:
KernelCenterer, [K_fit_all_, K_fit_rows_]
MinMaxScaler, [n_samples_seen_]

Saya akan mengerjakan:

  • RandomTreesEmbedding, [base_estimator_, class_, feature_importances_, n_classes_, n_features_, n_outputs_, one_hot_encoder_]

Saya juga telah menemukan modul KNeighborsClassifier , KNeighborsRegressor dan mungkin kelas lain dari modul neighbors tidak memiliki dokumentasi atribut sama sekali. Saat ini mengerjakan KNeighborsRegressor yang memiliki 2 atribut:

  • effective_metric_
  • effective_metric_params_

Kelas KNeighborsClassifier memiliki empat atribut:

  • classes_
  • effective_metric_
  • effective_metric_params_
  • outputs_2d_

@alexkes tangkapan yang bagus. Terima kasih!

Bekerja pada QuadraticDiscriminantAnalysis, [class_, covariance_]

Bekerja pada KNeighboursClassifier, [class_, effective_metric_, effective_metric_params_, outputs_2d_]
RadiusNeighboursClassifier, [kelas_, efektif_metrik_, efektif_metrik_params_, keluaran_2d_]

Bekerja pada:
LinearSVC, [kelas_]
NuSVC, [class_weight_, kelas_, status_ fit_, probA_, probB_, shape_fit_]
SVC, [class_weight_, class_, shape_fit_]

Bekerja pada:

  • [] BaggingClassifier, [n_features_, oob_decision_function_, oob_score_]
  • [] BaggingRegressor, [base_estimator_, n_features_, oob_prediction_, oob_score_]
  • [] AdaBoostClassifier, [base_estimator_]
  • [] AdaBoostRegressor, [base_estimator_]

Bekerja pada:

CountVectorizer, [stop_words_, vocabulary_]
DictVectorizer, [feature_names_, vocabulary_]

Hai Aku!! Saya ingin membantu dengan yang satu ini .. Adakah yang bisa memberi tahu saya di mana saya harus mulai ??

Kami sedang mengerjakan fungsi di dict_learning.py @spbail

Bekerja pada Analisis Diskriminan Linear dengan @ olgadk7

Bekerja pada ketidakcocokan Atribut di RidgeClassifierCV @ npatta01

Mengerjakan DecisionTreeRegressor dengan @ ingrid88 + @ npatta01

Bekerja pada Analisis Diskriminan Linear dengan @ olgadk7

Positif palsu untuk skrip atribut di atas. Ini telah didokumentasikan.

Bekerja pada AdditiveChi2Sampler dengan @ olgadk7

Bekerja pada LabelEncoder dengan @eugeniaft

akan mencoba bekerja di randomtreeclassifier!

bekerja pada

Perceptron

mengerjakan BernoulliRBM

Bekerja pada ExtraTreeClassifer

Bekerja pada LabelEncoder dengan @eugeniaft

LabelEncoder sepertinya tidak memiliki ketidakcocokan, kami sedang mengerjakan OneClassSVM

Saya pikir regressor pohon harus menghentikan kelas mereka sebagai gantinya.

mengerjakan SVR

Bekerja pada:

  • OneVsOneClassifier, [n_classes_]
  • OneVsRestClassifier, [coef_, intercept_, n_classes_]

mengerjakan LinearRegression, [rank_, singular_]

mengerjakan LatentDirichletAllocation, [terikat_, doc_topic_prior_, exp_dirichlet_component_, random_state_, topic_word_prior_]

bekerja pada
BaggingClassifier, [n_features_, oob_decision_function_, oob_score_]
BaggingRegressor, [base_estimator_, n_features_, oob_prediction_, oob_score_]

BaggingClassifier, [n_features_, oob_decision_function_, oob_score_]
BaggingRegressor, [base_estimator_, n_features_, oob_prediction_, oob_score_]
Atribut oob_ adalah alamat di PR # 14779, n_features_ & base_estimator_ adalah positif palsu.

bekerja pada
AdaBoostClassifier, [base_estimator_]

Pembaruan: sudah diperbaiki di https://github.com/scikit-learn/scikit-learn/pull/14477

Saya rasa kami sebaiknya tidak merekomendasikan masalah ini untuk sprint berikutnya, atau menggunakan versi yang lebih banyak dikurasi.

Berdasarkan pengalaman saya pada sprint sebelumnya, masih banyak kesalahan positif, dan kami akhirnya meminta kontributor untuk benar-benar mencela atribut publik untuk menjadikannya pribadi, yang bisa dibilang jauh lebih sulit (dan bisa membuat frustasi karena kontributor merasa mereka bekerja untuk tidak ada).

Ping @amueller @thomasjpfan WDYT?

Saya rasa kami sebaiknya tidak merekomendasikan masalah ini untuk sprint berikutnya, atau menggunakan versi yang lebih banyak dikurasi.

Mungkin jika kami memiliki alat validasi umum untuk docstring seperti yang diusulkan di https://github.com/numpy/numpydoc/issues/213, hal-hal akan sedikit lebih mudah bagi kontributor. Meskipun saya setuju bahwa itu tidak sepenuhnya menjawab fakta bahwa beberapa atribut bersifat publik padahal seharusnya tidak.

TfidfVectorizer, SpectralEmbedding, SparseRandomProjection diperbarui.

Saya bertanya-tanya tentang mengambil masalah itu sebagai yang pertama, tetapi setelah beberapa memilih submodul yang terdaftar secara acak oleh skrip, satu-satunya kelas yang saya temukan sebagai didokumentasikan dengan tidak benar adalah kelas PLS *. Tetapi mereka tinggal di file _pls_.py, yang tampaknya bukan untuk publik. Haruskah saya mengerjakannya atau menemukan masalah baik pertama lainnya?

Selama kelas yang sebenarnya terbuka untuk umum, mereka memenuhi syarat. Kelas umum terdaftar di doc/modules/classes.rst . Kelas PLS * ada di sana jadi silakan mendokumentasikannya

Apakah masuk akal untuk menyusun semua atribut menurut abjad? Saya pikir ini akan memberikan struktur pada bagian dan membuat bagian lebih mudah dibaca.

@pwalchessen Saya setuju, sepertinya ide yang bagus. Seperti yang disebutkan secara langsung, saya juga akan menambahkannya ke dalam tes.

Ini sepertinya masih terbuka dan agak jelas:

Docstring Error: Attribute mismatch in RidgeCV
cv_values_
Docstring Error: Attribute mismatch in RidgeClassifier
classes_
Docstring Error: Attribute mismatch in RidgeClassifierCV
classes_
cv_values_
Docstring Error: Attribute mismatch in SkewedChi2Sampler
random_offset_
random_weights_
Docstring Error: Attribute mismatch in PLSCanonical
coef_
x_mean_
x_std_
y_mean_
y_std_
Docstring Error: Attribute mismatch in PLSRegression
x_mean_
x_std_
y_mean_
y_std_
Docstring Error: Attribute mismatch in PLSSVD
x_mean_
x_std_
y_mean_
y_std_
Docstring Error: Attribute mismatch in PassiveAggressiveClassifier
loss_function_
Docstring Error: Attribute mismatch in Perceptron
loss_function_
Docstring Error: Attribute mismatch in PolynomialFeatures
powers_
Docstring Error: Attribute mismatch in QuadraticDiscriminantAnalysis
covariance_
Docstring Error: Attribute mismatch in RBFSampler
random_offset_
random_weights_
Docstring Error: Attribute mismatch in RadiusNeighborsClassifier
n_samples_fit_
outlier_label_
Docstring Error: Attribute mismatch in RadiusNeighborsRegressor
n_samples_fit_
Docstring Error: Attribute mismatch in RadiusNeighborsTransformer
effective_metric_
effective_metric_params_
n_samples_fit_
Docstring Error: Attribute mismatch in ElasticNet
dual_gap_
sparse_coef_
Docstring Error: Attribute mismatch in ElasticNetCV
dual_gap_
Docstring Error: Attribute mismatch in EllipticEnvelope
dist_
raw_covariance_
raw_location_
raw_support_

dan banyak lagi ...

Daftar terbaru dari atribut luar biasa yang perlu ditambahkan.

  • [] BayesianGaussianMixture

    • [x] mean_precision_prior

    • [] mean_precision_prior_

  • [] BayesianRidge

    • [] X_offset_

    • [] X_scale_

  • [] BernoulliNB

    • [] coef_ array

    • [] intercept_

  • [ ] Birch

    • [] fit_

    • [] parsial_fit_

  • [] CCA

    • [] coef_ array, bentuk (1, n_features) atau (n_classes, n_features); Koefisien fitur dalam fungsi keputusan.

    • [] x_mean_: larik, bentuk (n_features,) Rata-rata fitur.

    • [] x_std_

    • [] y_mean_

    • [] y_std_

  • [x] KategorikalNB

    • [x] kelas_ (kelas_: larik, bentuk (n_kelas,)

      Daftar label kelas yang dikenal oleh pengklasifikasi.

  • [] ComplementNB

    • [] coef_: larik, bentuk (1, n_features) atau (n_classes, n_features); Koefisien fitur dalam fungsi keputusan.

    • [] intercept_

  • [x] CountVectorizer

    • [x] stop_words_

    • [x] vocabulary_

  • [x] DecisionTreeClassifier

    • [x] feature_importances_

  • [] DecisionTreeRegressor

    • [] kelas_: seperti larik, bentuk (n_kelas,); Label kelas yang unik

    • [] n_kelas_: int; Jumlah label kelas unik

    • [x] feature_importances_

  • [] DictVectorizer

    • [] nama_fitur_

    • [] vocabulary_

  • [] DummyClassifier

    • [] keluaran_2d_

  • [] DummyRegressor

    • [] keluaran_2d_

  • [] ElasticNet

    • [] dual_gap_

    • [] sparse_coef_

  • [] ElasticNetCV

    • [] dual_gap_

  • [] Amplop Elliptic

    • [] dist_

    • [] raw_covariance_

    • [] raw_location_

    • [] raw_support_

  • [] ExtraTreeClassifier

    • [] feature_importances_

  • [] ExtraTreeRegressor

    • [] kelas_: seperti larik, bentuk (n_kelas,); Label kelas yang unik

    • [] feature_importances_

    • [] n_kelas_: int; Jumlah label kelas unik

  • [] FiturAgglomerasi

    • [] n_komponen_

    • [x] jarak_

  • [] GaussianProcessClassifier

    • [] base_estimator_

    • [x] kernel_

  • [x] GaussianRandomProjection

    • [x] komponen_

  • [] GradientBoostingClassifier

    • [] max_features_

    • [] n_kelas_: int; Jumlah kelas unik.

    • [] n_features_: int; Jumlah fitur yang digunakan.

    • [x] peningkatan_oob_

    • [x] feature_importances_

  • [] GradientBoostingRegressor

    • [] max_features_

    • [] n_kelas_: int; Jumlah kelas unik.

    • [] n_estimators_

    • [] n_features_: int; Jumlah fitur yang digunakan.

    • [x] peningkatan_oob_

    • [x] feature_importances_

  • [] HistGradientBoostingClassifier

    • [] bin_mapper_

    • [] kelas_

    • [] do_early_stopping_

    • [] kerugian_

    • [] n_features_: int; Jumlah fitur yang dipilih.

    • [x] n_iter_

    • [] pencetak gol_

  • [] HistGradientBoostingRegressor

    • [] bin_mapper_

    • [] do_early_stopping_

    • [] kerugian_

    • [] n_features_: int; Jumlah fitur yang dipilih.

    • []

    • [] pencetak gol_

  • [] PCA Inkremental

    • [] ukuran_kumpulan_

  • [] IsolationForest

    • [] base_estimator_

    • [] estimators_features_

    • [x] penaksir_sampel_

    • [] n_features_: int; Jumlah fitur yang dipilih.

  • [] KernelCenterer

    • [] K_fit_all_

    • [] K_fit_rows_

  • [] KernelDensity

    • [] pohon_

  • [] LarsCV

    • [] aktif_

  • [] Lasso

    • [] dual_gap_

    • [x] sparse_coef_

  • [] LassoLarsCV

    • [] aktif_

  • [] LassoLarsIC

    • [] alphas_

  • [] LatentDirichletAllocation

    • [x] terikat_

    • [x] doc_topic_prior_

    • [] exp_dirichlet_component_

    • [] kondisi_kacak_

  • [] LocalOutlierFactor

    • [] efektif_metrik_

    • [] effective_metric_params_

    • [] n_sampel_fit_: int; Jumlah sampel dalam data yang dipasang.

  • [] MDS

    • [] matriks_ ketidaksamaan

    • [] n_iter_: int; Jumlah iterasi.

  • [] MLPClassifier

    • [] kerugian_terbaik_

    • [] loss_curve_

    • [] t_

  • [] MLPRegressor

    • [] kerugian_terbaik_

    • [] loss_curve_

    • [] t_

  • [] MiniBatchKMeans

    • [] hitungan_

    • [] init_size_

    • [] n_iter_: int; Jumlah iterasi.

  • [] MultiTaskElasticNet

    • [] dual_gap_

    • [] eps_

    • [] sparse_coef_

  • [] MultiTaskElasticNetCV

    • [] dual_gap_

  • [] MultiTaskLasso

    • [] dual_gap_

    • [] eps_

    • [] sparse_coef_

  • [] MultiTaskLassoCV

    • [] dual_gap_

  • [] OAS

    • [] lokasi_

  • [] OneVsRestClassifier

    • [] coef_: larik, bentuk (1, n_features) atau (n_classes, n_features); Koefisien fitur dalam fungsi keputusan.

    • [] intersep_

    • [] n_kelas_: int; Jumlah kelas unik.

  • [] OrthogonalMatchingPursuit

    • [] n_nonzero_coefs_

  • [] PLS Kanonika

    • [] coef_: larik, bentuk (1, n_features) atau (n_classes, n_features); Koefisien fitur dalam fungsi keputusan.

    • [] x_mean_: float ???; Arti dari

    • [] x_std_

    • [] y_mean_

    • [] y_std_

  • [] PLSRegresi

    • [] x_mean_

    • [] x_std_

    • [] y_mean_

    • [] y_std_

  • [] PLSSVD

    • [] x_mean_

    • [] x_std_

    • [] y_mean_

    • [] y_std_

  • [] PassiveAggressiveClassifier

    • [] loss_function_

  • [] RBFSampler

    • [] random_offset_

    • [] bobot_kacak_

  • [] ShrunkCovariance

    • [] penyusutan

  • [] SkewedChi2Sampler

    • [] random_offset_

    • [] bobot_acak_

  • [] _BaseRidgeCV

    • [] alpha_

    • [] coef_

    • [] intersep_

  • [] _ConstantPredictor

    • [] y_

  • [] _RidgeGCV

    • [] alpha_

    • [] coef_

    • [] dual_coef_

    • [] intercept_

Saya akan menambahkan feature_importances_ ke dokumentasi untuk ExtraTreeRegressor

Sekelompok jurusan ilmu data dan saya akan mulai mengerjakan dokumentasi atribut BayesianRidge, [X_offset_, X_scale_].

Hai, grup kontributor kami akan mengerjakan:

  • PLSSVD
  • CCA
  • PCA inkremental
  • MiniBatchKMeans
  • Laso

Potensi perbaikan di # 16826

Tes ditambahkan di # 16286.
Saat ini masih ada beberapa kelas yang dilewati:
https://github.com/scikit-learn/scikit-learn/blob/753da1de06a764f264c3f5f4817c9190dbe5e021/sklearn/tests/test_docstring_parameters.py#L180

Beberapa di antaranya sudah memiliki PR, jadi pastikan untuk memeriksanya sebelum mulai mengerjakannya.

Beberapa di antaranya sudah memiliki PR, jadi pastikan untuk memeriksanya sebelum mulai mengerjakannya.

Pilihan yang baik juga adalah mencoba melihat PR terbuka yang belum digabungkan dan mencoba menyelesaikannya.

Sebagai aturan praktis, jika PR tidak memiliki aktivitas selama lebih dari 2-3 minggu, tidak masalah untuk mencoba mengambil alih dan menyelesaikannya.

Jika Anda tertarik dengan solusi seperti itu, ada cara untuk mengimplementasikan ekstensi untuk sphinx yang memeriksa bahwa semua parameter didokumentasikan atau tidak salah eja (Anda dapat melihat contohnya di sini: https://github.com/sdpython/pyquickhelper/blob /master/src/pyquickhelper/sphinxext/sphinx_docassert_extension.py). Mungkin berguna untuk menambahkan yang khusus ke dokumentasi scikit-learn.

@sdpython , itu akan luar biasa! Jika Anda tidak mengerjakan sesuatu yang lain, mungkin Anda bisa mengajukan draf PR? Terima kasih!

Menarik!

IIRC kami memiliki tes umum yang memeriksa bahwa semua atribut didokumentasikan. Itu ditambahkan di https://github.com/scikit-learn/scikit-learn/pull/16286. Saya juga sepertinya ingat bahwa mne-python memiliki sesuatu yang mirip.

Saya tidak memiliki pendapat yang diinformasikan tentang pendekatan mana yang lebih disukai tetapi saya akan mengatakan bahwa mendokumentasikan parameter yang hilang mungkin merupakan prioritas yang lebih tinggi daripada memutuskan bagaimana kami ingin melakukan pemeriksaan.

Masalah dengan melakukan itu di sphinx yang dalam kasus kami membuat dokumentasi membutuhkan waktu lama (karena menghasilkan semua contoh) sehingga pengujian unit atau alat mandiri akan lebih mudah digunakan. Perhatikan bahwa kami sebelumnya telah menggunakan validasi numpydoc di https://github.com/scikit-learn/scikit-learn/issues/15440 dan beberapa validasi docstring dengan anotasi tipe dapat dilakukan dengan https://github.com/terrencepreilly / darglint. Jadi kita mungkin harus menghindari situasi menggunakan 5 alat validasi yang berbeda untuk docstrings juga :)

Saya suka kemampuan menggunakan pytest untuk memeriksa hasilnya, misalnya:

pytest -v  --runxfail -k IsolationForest sklearn/tests/test_docstring_parameters.py

jadi mungkin tidak perlu mengubah build sphinx kami untuk ini.

Saya memeriksa dokumen atribut mana yang masih hilang (daftar di atas sudah usang). Ini yang saya temukan:

BayesianGaussianMixture, [mean_precision_prior]
BayesianRidge, [X_offset_, X_scale_]
BernoulliNB, [coef_, intercept_]
Birch, [fit_, partial_fit_]
CCA, [x_mean_, x_std_, y_mean_, y_std_]
DecisionTreeRegressor, [kelas_, n_classes_]
DummyClassifier, [output_2d_]
DummyRegressor, [output_2d_]
ElasticNet, [dual_gap_]
ElasticNetCV, [dual_gap_]
ExtraTreeRegressor, [kelas_, n_ kelas_]
FeatureAgglomeration, [n_components_]
LarsCV, [active_]
Lasso, [dual_gap_]
LassoLarsCV, [active_]
LassoLarsIC, [alphas_]
MiniBatchKMeans, [counts_, init_size_, n_iter_]
MultiTaskElasticNet, [dual_gap_, eps_, sparse_coef_]
MultiTaskElasticNetCV, [dual_gap_]
MultiTaskLasso, [dual_gap_, eps_, sparse_coef_]
MultiTaskLassoCV, [dual_gap_]
NuSVR, [probA_, probB_]
OneClassSVM, [probA_, probB_]
OneVsRestClassifier, [coef_, intercept_]
OrthogonalMatchingPursuit, [n_nonzero_coefs_]
PLS Kanonikal, [x_mean_, x_std_, y_mean_, y_std_]
PLSSVD, [x_mean_, x_std_, y_mean_, y_std_]
SVR, [probA_, probB_]

Terima kasih @marenwestermann!

Saya sedang mengerjakan MiniBatchKMeans

Saya sedang mengerjakan Lasso.

Saya sekarang sedang bekerja untuk menambahkan atribut sparse_coef_ ke MultiTaskElasticNet dan MultiTaskLasso.

Saya sedang mengerjakan LarsCV.

@thomasjpfan dikatakan di kelas SVR dan OneClassSVM :
"Atribut probA_ tidak digunakan lagi di versi 0.23 dan akan dihapus di versi 0.25." dan
"Atribut probB_ tidak digunakan lagi pada versi 0,23 dan akan dihapus pada versi 0,25."

Karenanya, atribut ini mungkin tidak membutuhkan dokumentasi lagi, bukan?
Dari sini, akankah kedua atribut ini juga tidak digunakan lagi di kelas NuSVR ?

Atribut classes_ dan n_classes_ untuk ExtraTreeRegressor adalah positif palsu.

Karenanya, atribut ini mungkin tidak membutuhkan dokumentasi lagi, bukan?
Dari sini, apakah kedua atribut ini juga tidak digunakan lagi di kelas NuSVR?

Karena kami mencela mereka, saya akan mengatakan kami tidak perlu mendokumentasikannya.

Atribut class_ dan n_classes_ untuk ExtraTreeRegressor adalah positif palsu.

Ya, semua itu harus dihentikan lalu dihapus jika belum.

Kelas DecisionTreeRegressor mengatakan:
"atribut n_classes_ akan dihentikan dari versi 0,22 dan akan dihapus dalam 0,24."
"atribut kelas_ akan dihentikan dari versi 0,22 dan akan dihapus dalam 0,24."

Jadi atribut ini juga tidak perlu dokumentasi kan?

Jadi atribut ini juga tidak perlu dokumentasi kan?

Benar @Abilityguy , terima kasih telah menunjukkannya.

Saya dapat melihat ketidakcocokan di bawah ini di _RidgeGCV:
Docstring Error: Ketidakcocokan atribut di _RidgeGCV
alfa_
skor terbaik_
coef_
dual_coef_
mencegat_
n_features_in_

dan di _BaseRidgeCV:
Docstring Error: Ketidakcocokan atribut di _BaseRidgeCV
alfa_
skor terbaik_
coef_
mencegat_
n_features_in_

Bisakah saya mengambilnya? Saya pemula dan ingin berkontribusi.

@marenwestermann di class FeatureAgglomeration katanya di versi 0.21 ditambahkan n_connected_components_ untuk menggantikan n_components_, maka n_components_ akan false positive kan ..?

@ srivathsa729 dari pemahaman saya ya. Namun, alangkah baiknya jika salah satu pengembang inti dapat memeriksa ulang.

Saya akan menggunakan ElasticNet

Dokumentasi atribut X_offset_ dan X_scale_ untuk BayesianRidge telah ditambahkan dengan # 18607.

Atribut output_2d_ tidak digunakan lagi di DummyClassifier dan DummyRegressor (lihat # 14933).

Saya menjalankan skrip yang disediakan oleh @amueller di bagian atas PR ini (kodenya perlu sedikit dimodifikasi karena banyak hal telah berpindah). Saya tidak dapat menemukan atribut lagi yang perlu didokumentasikan dengan pengecualian n_features_in_ yang saya lihat telah diperkenalkan di # 16112. Atribut ini tidak terdokumentasi di saya pikir semua kelas itu diperkenalkan. Haruskah itu didokumentasikan?
ping @NicolasHug

Apakah halaman ini membantu?
0 / 5 - 0 peringkat