Scikit-Learn模塊學習筆記——數據集模塊datasets


scikit-learn 的 datasets 模塊包含測試數據相關函數,主要包括三類:

  • datasets.load_*():獲取小規模數據集。數據包含在 datasets 里
  • datasets.fetch_*():獲取大規模數據集。需要從網絡上下載,函數的第一個參數是 data_home,表示數據集下載的目錄,默認是 ~/scikit_learn_data/。要修改默認目錄,可以修改環境變量SCIKIT_LEARN_DATA。數據集目錄可以通過datasets.get_data_home()獲取。clear_data_home(data_home=None)刪除所有下載數據。
  • datasets.make_*():本地生成數據集。

數據集格式

  • tuple(X, y)
    本地生成數據函數 make_*load_svmlight_* 返回的數據是 tuple(X, y) 格式

  • Bunch
    load_*fetch_* 函數返回的數據類型是 datasets.base.Bunch,本質上是一個 dict,它的鍵值對可用通過對象的屬性方式訪問。主要包含以下屬性:

    • data:特征數據數組,是 n_samples * n_features 的二維 numpy.ndarray 數組
    • target:標簽數組,是 n_samples 的一維 numpy.ndarray 數組
    • DESCR:數據描述
    • feature_names:特征名
    • target_names:標簽名

獲取小數據集

  • load_boston():
    房屋特征-房價,用於regression
  • load_diabetes():
    糖尿病數據,用於 regression
  • load_linnerud():
    Linnerud數據集,有多個標簽,用於 multilabel regression
  • load_iris():
    鳶尾花特征和類別,用於classification
  • load_digits([n_class]):
    手寫數字識別
  • load_sample_images():
    載入圖片數據集,共兩張圖
  • load_sample_image(name):
    載入圖片數據集中的一張圖
  • load_files(container_path, description=None, categories=None, load_content=True, shuffle=True, encoding=None, decode_error='strict', random_state=0):
    從本地目錄獲取文本數據,並根據二級目錄做分類

獲取大數據集

  • load_mlcomp(name_or_id, set_='raw', mlcomp_root=None, **kwargs):
    http://mlcomp.org/ 上下載數據集
  • fetch_california_housing(data_home=None, download_if_missing=True)
  • fetch_olivetti_faces(data_home=None, shuffle=False, random_state=0, download_if_missing=True):
    Olivetti 臉部圖片數據集
  • fetch_lfw_people(data_home=None, funneled=True, resize=0.5, min_faces_per_person=0, color=False, slice_=(slice(70, 195, None), slice(78, 172, None)), download_if_missing=True):
  • fetch_lfw_pairs(subset='train', data_home=None, funneled=True, resize=0.5, color=False, slice_=(slice(70, 195, None), slice(78, 172, None)), download_if_missing=True):
    Labeled Faces in the Wild (LFW) 數據集,參考 LFW
  • fetch_20newsgroups(data_home=None, subset='train', categories=None, shuffle=True, random_state=42, remove=(), download_if_missing=True)
  • fetch_20newsgroups_vectorized(subset='train', remove=(), data_home=None):
    新聞分類數據集,數據集包含 ‘train’ 部分和 ‘test’ 部分。
  • fetch_rcv1(data_home=None, subset='all', download_if_missing=True, random_state=None, shuffle=False):
    路透社新聞語聊數據集
  • fetch_mldata(dataname, target_name='label', data_name='data', transpose_data=True, data_home=None):
    從 mldata.org 中下載數據集。參考 PASCAL network
  • mldata_filename(dataname):
    將 mldata 的數據集名轉換為下載的數據文件名
  • fetch_covtype(data_home=None, download_if_missing=True, random_state=None, shuffle=False)
    Forest covertypes 數據集

本地生成數據

回歸(regression)

  • make_regression(n_samples=100, n_features=100, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)
  • make_sparse_uncorrelated(n_samples=100, n_features=10, random_state=None)
  • make_friedman1(n_samples=100, n_features=10, noise=0.0, random_state=None)
  • make_friedman2(n_samples=100, noise=0.0, random_state=None)
  • make_friedman3(n_samples=100, noise=0.0, random_state=None)

分類(classification)

單標簽

  • make_classification(n_samples=100, n_features=20, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, scale=1.0, shuffle=True, random_state=None):
    生成 classification 數據集。包含所有的設置,可以包含噪聲,偏斜的數據集
  • make_blobs(n_samples=100, n_features=2, centers=3, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None):
    生成 classification 數據集。數據服從高斯分布
    centers 可以是整數,表示中心點個數,或者用列表給出每個中心點的特征值
    cluster_std 可以是浮點數或浮點數列表
    random_state 可以是整數,表示隨機起始 seed,或者 RandomState 對象,默認使用 np.random
  • make_gaussian_quantiles(mean=None, cov=1.0, n_samples=100, n_features=2, n_classes=3, shuffle=True, random_state=None):
  • make_hastie_10_2(n_samples=12000, random_state=None):
  • make_circles(n_samples=100, shuffle=True, noise=None, random_state=None, factor=0.8):
  • make_moons(n_samples=100, shuffle=True, noise=None, random_state=None):

多標簽

  • make_multilabel_classification(n_samples=100, n_features=20, n_classes=5, n_labels=2, length=50, allow_unlabeled=True, sparse=False, return_indicator='dense', return_distributions=False, random_state=None):
    生成 multilabel classification 數據集。

雙聚類(bicluster)

  • make_biclusters(shape, n_clusters, noise=0.0, minval=10, maxval=100, shuffle=True, random_state=None):
  • make_checkerboard(shape, n_clusters, noise=0.0, minval=10, maxval=100, shuffle=True, random_state=None):

流形學習(manifold learning)

  • make_s_curve(n_samples=100, noise=0.0, random_state=None)
  • make_swiss_roll(n_samples=100, noise=0.0, random_state=None)、

可降維(decomposition)數據

  • make_low_rank_matrix(n_samples=100, n_features=100, effective_rank=10, tail_strength=0.5, random_state=None)
  • make_sparse_coded_signal(n_samples, n_components, n_features, n_nonzero_coefs, random_state=None)
  • make_spd_matrix(n_dim, random_state=None)
  • make_sparse_spd_matrix(dim=1, alpha=0.95, norm_diag=False, smallest_coef=0.1, largest_coef=0.9, random_state=None)

處理 svmlight / libsvm 格式數據

提供 svmlight / libsvm 格式數據的導入或導出。

  • load_svmlight_file(f, n_features=None, dtype=numpy.float64, multilabel=False, zero_based='auto', query_id=False):
    返回 (X, y, [query_id]),其中 X 是 scipy.sparse matrix,y 是 numpy.ndarray
  • load_svmlight_files(files, n_features=None, dtype=numpy.float64, multilabel=False, zero_based='auto', query_id=False)
  • dump_svmlight_file(X, y, f, zero_based=True, comment=None, query_id=None, multilabel=False)

其他數據集網站

UCI Machine Learning Repository:http://archive.ics.uci.edu/ml/datasets.html
UCI KDD:http://kdd.ics.uci.edu/summary.data.type.html
Kaggle:https://www.kaggle.com/datasets

參考

官方datasets包文檔:http://scikit-learn.org/stable/datasets/index.html
API列表:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM