sklearn.datasets
模塊嵌入了“ 入門“部分介紹的一些小型玩具數(shù)據(jù)集。
該模塊還具有幫助用戶獲取大型數(shù)據(jù)集的功能,這些數(shù)據(jù)集通常由機器學習社區(qū)用來模擬“現(xiàn)實世界”的數(shù)據(jù)來進行算法測試。
為了控制數(shù)據(jù)統(tǒng)計特性(通常是特征的相關性和信息性)的同時評估數(shù)據(jù)集規(guī)模(n_samples
和 n_features
)的影響,還可以生成綜合數(shù)據(jù)集。
根據(jù)所需的數(shù)據(jù)集類型,可以使用三個主要的數(shù)據(jù)集接口來獲取數(shù)據(jù)集。
The dataset loaders(數(shù)據(jù)集加載器)。它們可用于加載小的標準數(shù)據(jù)集,如“ 玩具數(shù)據(jù)集”部分所述。
The dataset fetchers(數(shù)據(jù)集提取程序)。它們可用于下載和加載更大的數(shù)據(jù)集,如“ 現(xiàn)實世界數(shù)據(jù)集”部分所述。
loaders和fetchers的函數(shù)返回一個sklearn.utils.Bunch
對象,這個對象至少包含兩個部分:一部分是n_samples
* n_features
的數(shù)據(jù)框,與鍵data
(除了20個新聞組的數(shù)據(jù)集)對應;另一個是包含有目標值的長度等于n_samples
的數(shù)組,與鍵target
對應。
Bunch對象是一個字典,它的鍵是屬性。有關Bunch對象的更多信息,請參見sklearn.utils.Bunch
。
通過將return_X_y
參數(shù)設置為True,幾乎所有這些函數(shù)還可以將輸出約束為僅包含特征數(shù)據(jù)和目標的元組。
數(shù)據(jù)集的DESCR
屬性中還包含完整的說明,其中一些包含feature_names
和target_names
。有關詳細信息,請參見下面的數(shù)據(jù)集描述。
The dataset generation functions(數(shù)據(jù)集生成函數(shù))。它們可用于生成受控的合成數(shù)據(jù)集,如“ 生成的數(shù)據(jù)集”部分所述。
這些函數(shù)返回一個元組(X, y)
,該元組由一個n_samples
*n_features
的 numpy數(shù)組X
和一個 包含目標的長度為n_samples
的數(shù)組y
組成。
此外,還有其他工具可用于加載其他格式或從其他位置加載數(shù)據(jù)集,如“ 加載其他數(shù)據(jù)集” 部分所述。
scikit-learn帶有一些小的標準數(shù)據(jù)集,不需要從某些外部網(wǎng)站下載任何文件。
可以使用以下功能加載它們:
函數(shù) | 返回 |
---|---|
load_boston (*[, return_X_y]) |
加載并返回波士頓房價數(shù)據(jù)集(回歸)。 |
load_iris (*[, return_X_y, as_frame]) |
加載并返回鳶尾花數(shù)據(jù)集(分類)。 |
load_diabetes (*[, return_X_y, as_frame]) |
加載并返回糖尿病數(shù)據(jù)集(回歸)。 |
load_digits (*[, n_class, return_X_y, as_frame]) |
加載并返回數(shù)字數(shù)據(jù)集(分類)。 |
load_linnerud (*[, return_X_y, as_frame]) |
加載并返回linnerud物理鍛煉數(shù)據(jù)集。 |
load_wine (*[, return_X_y, as_frame]) |
加載并返回葡萄酒數(shù)據(jù)集(分類)。 |
load_breast_cancer (*[, return_X_y, as_frame]) |
加載并返回威斯康星州乳腺癌數(shù)據(jù)集(分類)。 |
這些數(shù)據(jù)集可用于快速說明scikit-learn中實現(xiàn)的各種算法的行為。但是,
數(shù)據(jù)集特征:
實例數(shù) | 506 |
---|---|
屬性數(shù)量 | 13個數(shù)值/分類特征,房價中位數(shù)(特征14)是標簽。 |
屬性信息(按順序) | - CRIM 按城鎮(zhèn)劃分的人均犯罪率 - ZN 比例超過25,000平方英尺的住宅用地比例。 - INDUS 每個城鎮(zhèn)非零售業(yè)務英畝的比例 - CHAS 查爾斯河虛擬變量(如果邊界是河流,則為1;否則為0) - NOX 一氧化氮濃度(百萬分之幾) - RM 每個住宅的平均房間數(shù) - AGE 1940年之前建造的自有住房的年齡比例 - DIS 與五個波士頓就業(yè)中心的加權(quán)距離 - RAD 高速公路通行能力指數(shù) - TAX 每10,000美元的稅全額財產(chǎn)稅稅率 - PTRATIO 按鎮(zhèn)劃分的師生比率 - B 1000(Bk-0.63)^ 2 其中Bk是按城鎮(zhèn)劃分的黑人比例 - LSTAT 人口地位降低百分比 - MEDV 自有住房的價值中位數(shù)(以1000美元計) |
缺失值 | 無 |
創(chuàng)作者 | Harrison, D. and Rubinfeld, D.L. |
這是UCI ML住房數(shù)據(jù)集的副本。 https://archive.ics.uci.edu/ml/machine-learning-databases/housing/
該數(shù)據(jù)集取自卡內(nèi)基梅隆大學維護的StatLib庫。
波士頓房價數(shù)據(jù)出現(xiàn)在哈里森(Harrison)和魯賓菲爾德(Rubinfeld)的“Hedonic prices and the demand for clean air”,1978年 J. Environ. Economics & Management,第5卷,第81-102頁 。后被Belsley,Kuh和Welsch用在“ Regression diagnostics … ”, Wiley, 1980. N.B. Various 。注意后者的244-261頁上的表格中的數(shù)據(jù)是經(jīng)過轉(zhuǎn)換的。
波士頓房價數(shù)據(jù)已用于許多解決回歸問題的機器學習論文中。
參考文獻
Belsley, Kuh & Welsch, ‘Regression diagnostics: Identifying Influential Data and Sources of Collinearity’, Wiley, 1980. 244-261. Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.
數(shù)據(jù)集特征:
實例數(shù) | 150(三類各50個) |
---|---|
屬性數(shù)量 | 4個數(shù)值,預測屬性和類別 |
屬性信息 | - 萼片長度(厘米) - 萼片寬度(厘米) - 花瓣長度(厘米) - 花瓣寬度(厘米) - 類: 鳶尾花 鳶尾花 鳶尾花 |
統(tǒng)計摘要 | ![]() |
缺失值 | 無 |
類別分布 | 3個類別中的每類別占33.3%。 |
創(chuàng)作者 | R.A. Fisher |
捐贈者 | Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov) |
日期 | 1988年7月 |
著名的鳶尾花數(shù)據(jù),最早由 R.A. Fisher 爵士使用。該數(shù)據(jù)集摘自Fisher的論文。請注意,它與R中的相同,但與UCI機器學習存儲庫中的不同,后者具有兩個錯誤的數(shù)據(jù)點。
這也許是模式識別文獻中最著名的數(shù)據(jù)庫。Fisher的論文是該領域的經(jīng)典著作,至今仍被頻繁引用(請參見Duda&Hart)。數(shù)據(jù)集包含3類,每類50個實例,其中每個類都屬于一種鳶尾花。一類與其他兩類可線性分離;后者與其他的類別不能線性分離。
參考文獻
Fisher, R.A. “The use of multiple measurements in taxonomic problems” Annual Eugenics, 7, Part II, 179-188 (1936); also in “Contributions to Mathematical Statistics” (John Wiley, NY, 1950). Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis. (Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218. Dasarathy, B.V. (1980) “Nosing Around the Neighborhood: A New System Structure and Classification Rule for Recognition in Partially Exposed Environments”. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-2, No. 1, 67-71. Gates, G.W. (1972) “The Reduced Nearest Neighbor Rule”. IEEE Transactions on Information Theory, May 1972, 431-433. See also: 1988 MLC Proceedings, 54-64. Cheeseman et al”s AUTOCLASS II conceptual clustering system finds 3 classes in the data. Many, many more …
從442名糖尿病患者中獲取每位的年齡,性別,體重指數(shù),平均血壓和六次血清測量值,共十個基線變量,以及一年后疾病進展的定量測量指標。
數(shù)據(jù)集特征:
實例數(shù) | 442 |
---|---|
特征數(shù)量 | 前10列是數(shù)字測量值 |
標簽 | 第11列是基線后一年疾病進展的定量測量 |
特征信息 | 年齡(歲) 性別 體重指數(shù) bp平均血壓 s1 tc,T細胞(一種白細胞) s2 ldl,低密度脂蛋白 s3 hdl,高密度脂蛋白 s4 tch,甲狀腺刺激激素 S5 LTG,拉莫三嗪 s6 glu,血糖水平 |
注意:這10個特征變量中的每一個都以平均值為中心,并按標準偏差乘以 n_samples
(即每列總和的平方和1)進行縮放。
源URL:https : //www4.stat.ncsu.edu/~boos/var.select/diabetes.html
更多相關信息,請參見: Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani (2004) “Least Angle Regression,” Annals of Statistics (with discussion), 407-499. (https://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)
數(shù)據(jù)集特征:
實例數(shù) | 5620 |
---|---|
屬性數(shù)量 | 64 |
屬性信息 | 范圍為0..16的整數(shù)像素的8x8圖像。 |
缺失值 | 無 |
創(chuàng)作者 | Alpaydin (alpaydin ‘@’ boun.edu.tr) |
日期 | 1998年7月 |
這是UCI ML手寫數(shù)字數(shù)據(jù)集測試集的副本 https://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handheld+Digits
數(shù)據(jù)集包含手寫數(shù)字的圖像:10個類別,每個類別均指一個數(shù)字。
NIST提供的預處理程序用于從預印表格中提取手寫數(shù)字的標準化位圖。在總共43個人中,有30個人參與了培訓,而有13個人參與了測試。將32x32位圖劃分為4x4的非重疊塊,并在每個塊中統(tǒng)計像素點的數(shù)量。這將生成8x8的輸入矩陣,其中每個元素都是0..16范圍內(nèi)的整數(shù)。這降低了尺寸并且產(chǎn)生了小的變形。
有關NIST預處理例程的信息,請參見 M. D. Garris, J. L. Blue, G. T. Candela, D. L. Dimmick, J. Geist, P. J. Grother, S. A. Janet, and C. L. Wilson, NIST Form-Based Handprint Recognition System, NISTIR 5469, 1994.
參考文獻
C. Kaynak (1995) Methods of Combining Multiple Classifiers and Their Applications to Handwritten Digit Recognition, MSc Thesis, Institute of Graduate Studies in Science and Engineering, Bogazici University.
Alpaydin, C. Kaynak (1998) Cascading Classifiers, Kybernetika. Ken Tang and Ponnuthurai N. Suganthan and Xi Yao and A. Kai Qin. Linear dimensionalityreduction using relevance weighted LDA. School of Electrical and Electronic Engineering Nanyang Technological University. 2005. Claudio Gentile. A New Approximate Maximal Margin Classification Algorithm. NIPS. 2000.
數(shù)據(jù)集特征:
實例數(shù) | 20 |
---|---|
屬性數(shù)量 | 3 |
缺失值 | 無 |
Linnerrud數(shù)據(jù)集是一個多輸出回歸數(shù)據(jù)集。它包括從健身俱樂部的二十名中年男子中收集的三個運動(data)和三個生理(target)變量:
? 體重,腰圍和脈搏。
? 下巴,仰臥起坐和跳躍。
參考文獻
Tenenhaus, M. (1998). La regression PLS: theorie et pratique. Paris: Editions Technic.
數(shù)據(jù)集特征:
實例數(shù) | 178(3類各50個) |
---|---|
屬性數(shù)量 | 13個數(shù)值,預測屬性和類別 |
屬性信息 | - 醇 - 蘋果酸 - 灰 - 灰的堿度 - 鎂 - 總酚 - 類黃酮 - 非類黃酮酚 - 原花青素 - 色彩強度 - 色調(diào) - 稀釋酒的OD280 / OD315 - 脯氨酸 - 類別: class_0 class_1 class_2 |
統(tǒng)計摘要 | ![]() |
缺失值 | 無 |
類別分布 | class_0(59),class_1(71),class_2(48) |
創(chuàng)作者 | R.A. Fisher |
捐贈者 | Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov) |
日期 | 1988年7月 |
這是UCI ML Wine識別數(shù)據(jù)集的副本。 https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data
數(shù)據(jù)是由三個不同的種植者對意大利同一地區(qū)種植的葡萄酒進行化學分析的結(jié)果。對于這三種葡萄酒中的不同成分,進行了十三項不同的測量。
原始所有者:
Forina, M. et al, PARVUS - An Extendible Package for Data Exploration, Classification and Correlation. Institute of Pharmaceutical and Food Analysis and Technologies, Via Brigata Salerno, 16147 Genoa, Italy.
引文:
Lichman, M. (2013). UCI Machine Learning Repository [https://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.
參考文獻
(1) S. Aeberhard, D. Coomans and O. de Vel, Comparison of Classifiers in High Dimensional Settings, Tech. Rep. no. 92-02, (1992), Dept. of Computer Science and Dept. of Mathematics and Statistics, James Cook University of North Queensland. (Also submitted to Technometrics).
The data was used with many others for comparing various classifiers. The classes are separable, though only RDA has achieved 100% correct classification. (RDA : 100%, QDA 99.4%, LDA 98.9%, 1NN 96.1% (z-transformed data)) (All results using the leave-one-out technique)
(2) S. Aeberhard, D. Coomans and O. de Vel, “THE CLASSIFICATION PERFORMANCE OF RDA” Tech. Rep. no. 92-01, (1992), Dept. of Computer Science and Dept. of Mathematics and Statistics, James Cook University of North Queensland. (Also submitted to Journal of Chemometrics).
數(shù)據(jù)集特征:
實例數(shù) | 569 |
---|---|
屬性數(shù)量 | 30個數(shù)值型預測屬性和1個類別標簽 |
屬性信息 | - 半徑(從中心到周長上的點的距離的平均值) - 紋理(灰度值的標準差) - 周長 - 面積 - 平滑度(半徑長度的局部變化) - 緊密度(周長*周長 /面積-1.0) - 凹度(輪廓凹陷的嚴重程度) - 凹點(輪廓的凹入部分的數(shù)量) - 對稱 - 分形維數(shù)(“海岸線近似”-1) 為每個圖像計算這些特征的平均值,標準和“最差”(最大值),從而得到30個特征。 例如,字段0是平均半徑,字段10是半徑標準差,字段20是最差半徑。 標簽分類: -- WDBC-惡性 -- WDBC-良性 |
統(tǒng)計摘要 | ![]() |
缺失值 | 無 |
類別分布 | 212-惡性,357-良性 |
創(chuàng)作者 | Dr. William H. Wolberg, W. Nick Street, Olvi L. Mangasarian |
捐贈者 | Nick Street |
日期 | 1995年11月 |
這是UCI ML威斯康星州(診斷)乳腺癌數(shù)據(jù)集的副本。 https://goo.gl/U2Uwz2
從乳腺腫塊的細針抽吸(FNA)的數(shù)字化圖像計算特征。它們描述了圖像中存在的細胞核的特征。
上述分離平面是使用多表面方法樹(MSM-T) [K. P. Bennett, “Decision Tree Construction Via Linear Programming.” Proceedings of the 4th Midwest Artificial Intelligence and Cognitive Science Society, pp. 97-101, 1992] ,一種使用線性規(guī)劃構(gòu)建決策樹的分類方法。在1-4個特征和1-3個分離平面的空間中使用詳盡搜索選擇相關特征。
用于獲得3維空間中分離平面的實際線性程序的描述如下: [K. P. Bennett and O. L. Mangasarian: “Robust Linear Programming Discrimination of Two Linearly Inseparable Sets”, Optimization Methods and Software 1, 1992, 23-34].
該數(shù)據(jù)庫也可以通過UW CS ftp服務器獲得:
ftp ftp.cs.wisc.edu cd math-prog/cpo-dataset/machine-learn/WDBC/
參考文獻
W.N. Street, W.H. Wolberg and O.L. Mangasarian. Nuclear feature extraction for breast tumor diagnosis. IS&T/SPIE 1993 International Symposium on Electronic Imaging: Science and Technology, volume 1905, pages 861-870, San Jose, CA, 1993. O.L. Mangasarian, W.N. Street and W.H. Wolberg. Breast cancer diagnosis and prognosis via linear programming. Operations Research, 43(4), pages 570-577, July-August 1995. W.H. Wolberg, W.N. Street, and O.L. Mangasarian. Machine learning techniques to diagnose breast cancer from fine-needle aspirates. Cancer Letters 77 (1994) 163-171.
scikit-learn提供了加載較大數(shù)據(jù)集的工具,必要時可以下載它們。
可以使用以下函數(shù)加載它們:
函數(shù) | 說明 |
---|---|
fetch_olivetti_faces (*[, data_home, …]) |
從AT&T(分類)中加載Olivetti人臉數(shù)據(jù)集。 |
fetch_20newsgroups (*[, data_home, subset, …]) |
從20個新聞組數(shù)據(jù)集中加載文件名和數(shù)據(jù)(分類)。 |
fetch_20newsgroups_vectorized (*[, subset, …]) |
加載20個新聞組數(shù)據(jù)集并將其矢量化為令牌計數(shù)(分類)。 |
fetch_lfw_people (*[, data_home, funneled, …]) |
將標簽的面孔加載到Wild(LFW)人數(shù)據(jù)集中(分類)。 |
fetch_lfw_pairs (*[, subset, data_home, …]) |
在“Wild(LFW)”對數(shù)據(jù)集中加載標簽的面部(分類)。 |
fetch_covtype (*[, data_home, …]) |
加載covertype(植被型數(shù)據(jù)集)數(shù)據(jù)集(分類)。 |
fetch_rcv1 (*[, data_home, subset, …]) |
加載RCV1多標簽數(shù)據(jù)集(分類)。 |
fetch_kddcup99 (*[, subset, data_home, …]) |
加載kddcup99(網(wǎng)絡入侵檢測)數(shù)據(jù)集(分類)。 |
fetch_california_housing (*[, data_home, …]) |
加載加利福尼亞住房數(shù)據(jù)集(回歸)。 |
該數(shù)據(jù)集包含 1992年4月至1994年4月之間在AT&T劍橋?qū)嶒炇遗臄z的一組面部圖像。sklearn.datasets.fetch_olivetti_faces
函數(shù)是數(shù)據(jù)獲取/緩存功能,可從AT&T下載數(shù)據(jù)存檔。
如原始網(wǎng)站所述:
40個不同主題,每一個主題都有十張不同的圖像。對于某些對象,圖像是在不同的時間拍攝的,光線,面部表情(睜開/閉合的眼睛,微笑/不微笑)和面部細節(jié)(眼鏡/不戴眼鏡)均不同。所有圖像都是在深色均勻背景下拍攝的,對象處于直立的,正面的位置(允許某些側(cè)向移動)。
數(shù)據(jù)集特征:
類別 | 40 |
---|---|
樣品總數(shù) | 400 |
維數(shù) | 4096 |
特征 | 實數(shù),介于0和1之間 |
圖像被量化為256灰度級并存儲為無符號的8位整數(shù)。加載程序會將這些值轉(zhuǎn)換為[0,1]區(qū)間內(nèi)的浮點值,對于許多算法而言,它們更易于使用。
該數(shù)據(jù)庫的“類別標簽”是從0到39的整數(shù),表示被攝人物的身份。但是,每個類只有10個示例,從無監(jiān)督或半監(jiān)督的角度來看,這個相對較小的數(shù)據(jù)集更加有趣。
原始數(shù)據(jù)集包含92 x 112,而這里的版本是64x64的圖像。
能使用這些圖像,請歸功于AT&T劍橋?qū)嶒炇摇?/p>
20個新聞組數(shù)據(jù)集,包括關于20個主題的大約18000個新聞帖子,分為兩個子集:一個用于訓練(或開發(fā)),另一個用于測試(或性能評估)。訓練集和測試集之間的劃分基于特定日期之前和之后發(fā)布的消息。
該模塊包含兩個加載程序。第一個 sklearn.datasets.fetch_20newsgroups
返回原始文本列表,這些原始文本可以饋送到文本特征提取器(例如sklearn.feature_extraction.text.CountVectorizer
使用自定義參數(shù)),以提取特征向量。第二個是sklearn.datasets.fetch_20newsgroups_vectorized
返回可用的特征,而不必使用特征提取器。
數(shù)據(jù)集特征:
類別 | 20 |
---|---|
樣本總數(shù) | 18846 |
維數(shù) | 1個 |
特征 | 文本 |
sklearn.datasets.fetch_20newsgroups
函數(shù)是一種數(shù)據(jù)獲取/緩存函數(shù),可從原始的20個新聞組網(wǎng)站下載數(shù)據(jù)存檔,提取~/scikit_learn_data/20news_home
文件夾中的存檔內(nèi)容,然后調(diào)用sklearn.datasets.load_files
訓練或測試集文件夾,或同時調(diào)用兩者:
>>> from sklearn.datasets import fetch_20newsgroups
>>> newsgroups_train = fetch_20newsgroups(subset='train')
>>> from pprint import pprint
>>> pprint(list(newsgroups_train.target_names))
['alt.atheism',
'comp.graphics',
'comp.os.ms-windows.misc',
'comp.sys.ibm.pc.hardware',
'comp.sys.mac.hardware',
'comp.windows.x',
'misc.forsale',
'rec.autos',
'rec.motorcycles',
'rec.sport.baseball',
'rec.sport.hockey',
'sci.crypt',
'sci.electronics',
'sci.med',
'sci.space',
'soc.religion.christian',
'talk.politics.guns',
'talk.politics.mideast',
'talk.politics.misc',
'talk.religion.misc']
實際數(shù)據(jù)位于filenames
和target
屬性中。目標標簽是代表類別的整數(shù):
>>> newsgroups_train.filenames.shape
(11314,)
>>> newsgroups_train.target.shape
(11314,)
>>> newsgroups_train.target[:10]
array([ 7, 4, 4, 1, 14, 16, 13, 3, 2, 4])
通過將要加載的類別列表傳遞給sklearn.datasets.fetch_20newsgroups
函數(shù),可以僅加載類別的某個子集 :
>>> cats = ['alt.atheism', 'sci.space']
>>> newsgroups_train = fetch_20newsgroups(subset='train', categories=cats)
>>> list(newsgroups_train.target_names)
['alt.atheism', 'sci.space']
>>> newsgroups_train.filenames.shape
(1073,)
>>> newsgroups_train.target.shape
(1073,)
>>> newsgroups_train.target[:10]
array([0, 1, 1, 1, 0, 1, 1, 0, 0, 0])
為了將文本數(shù)據(jù)用于預測或聚類模型,首先需要將文本轉(zhuǎn)換為適合統(tǒng)計分析的數(shù)值向量。如以下示例所示,可以使用sklearn.feature_extraction.text
模塊來實現(xiàn)此目的,該模塊從20個新聞組數(shù)據(jù)的訓練集中提取TF-IDF向量:
>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> categories = ['alt.atheism', 'talk.religion.misc',
... 'comp.graphics', 'sci.space']
>>> newsgroups_train = fetch_20newsgroups(subset='train',
... categories=categories)
>>> vectorizer = TfidfVectorizer()
>>> vectors = vectorizer.fit_transform(newsgroups_train.data)
>>> vectors.shape
(2034, 34118)
提取的TF-IDF向量非常稀疏,在超過30000維的空間(不到0.5%的非零特征)中,平均每個樣本有159個非零分量:
>>> vectors.nnz / float(vectors.shape[0])
159.01327...
sklearn.datasets.fetch_20newsgroups_vectorized
是一個返回即用型令牌計數(shù)特征而不是文件名的函數(shù)。
對于分類器來說,很容易在20個新聞組數(shù)據(jù)中出現(xiàn)的特定內(nèi)容(如新聞組標題)上過度匹配。許多分類器得到的F分數(shù)都很高,但對于不在此時間范圍內(nèi)的其他文檔上表現(xiàn)的很糟糕。
例如,讓我們看看多項式樸素貝葉斯分類器的結(jié)果,該分類器可以快速訓練并獲得不錯的F分數(shù):
>>> from sklearn.naive_bayes import MultinomialNB
>>> from sklearn import metrics
>>> newsgroups_test = fetch_20newsgroups(subset='test',
... categories=categories)
>>> vectors_test = vectorizer.transform(newsgroups_test.data)
>>> clf = MultinomialNB(alpha=.01)
>>> clf.fit(vectors, newsgroups_train.target)
MultinomialNB(alpha=0.01, class_prior=None, fit_prior=True)
>>> pred = clf.predict(vectors_test)
>>> metrics.f1_score(newsgroups_test.target, pred, average='macro')
0.88213...
(使用稀疏特征的文本文檔分類示例打亂了訓練集和測試集,而不是按時間分段,在這種情況下,多項式樸素貝葉斯的F分數(shù)更高,為0.88。你是否對該分類器內(nèi)部發(fā)生的事情感到懷疑?)
讓我們來看看最有用的特征是什么:
>>> import numpy as np
>>> def show_top10(classifier, vectorizer, categories):
... feature_names = np.asarray(vectorizer.get_feature_names())
... for i, category in enumerate(categories):
... top10 = np.argsort(classifier.coef_[i])[-10:]
... print("%s: %s" % (category, " ".join(feature_names[top10])))
...
>>> show_top10(clf, vectorizer, newsgroups_train.target_names)
alt.atheism: edu it and in you that is of to the
comp.graphics: edu in graphics it is for and of to the
sci.space: edu it that is in and space to of the
talk.religion.misc: not it you in is that and to of the
現(xiàn)在,您可以看到許多特征引起過擬合的情況:
NNTP-Posting-Host:
和的標頭Distribution:
或多或少地出現(xiàn)來區(qū)分 。憑借如此豐富的區(qū)分新聞組的線索,分類器根本無需從文本中識別主題,而且它們都表現(xiàn)出相同的高水平。
因此,加載20個新聞組數(shù)據(jù)的函數(shù)提供了一個稱為remove的參數(shù),限定要從每個文件中刪除哪些信息。remove應該是包含在任何子集中的一個元組('headers', 'footers', 'quotes')
,可以分別刪除標頭,簽名塊和引號塊。
>>> newsgroups_test = fetch_20newsgroups(subset='test',
... remove=('headers', 'footers', 'quotes'),
... categories=categories)
>>> vectors_test = vectorizer.transform(newsgroups_test.data)
>>> pred = clf.predict(vectors_test)
>>> metrics.f1_score(pred, newsgroups_test.target, average='macro')
0.77310...
這個分類器失去了很多F分數(shù),只是因為我們刪除了與主題分類無關的元數(shù)據(jù)。如果我們還從訓練數(shù)據(jù)中刪除此元數(shù)據(jù),則損失會更大:
>>> newsgroups_train = fetch_20newsgroups(subset='train',
... remove=('headers', 'footers', 'quotes'),
... categories=categories)
>>> vectors = vectorizer.fit_transform(newsgroups_train.data)
>>> clf = MultinomialNB(alpha=.01)
>>> clf.fit(vectors, newsgroups_train.target)
MultinomialNB(alpha=0.01, class_prior=None, fit_prior=True)
>>> vectors_test = vectorizer.transform(newsgroups_test.data)
>>> pred = clf.predict(vectors_test)
>>> metrics.f1_score(newsgroups_test.target, pred, average='macro')
0.76995...
其他一些分類器可以更好地應對此較難的任務。可以嘗試運行用于文本特征提取和評估的示例,選擇使用和不使用--filter
選項來比較結(jié)果。
建議 |
---|
當評估20個新聞組數(shù)據(jù)上的文本分類器時,應刪除與新聞組相關的元數(shù)據(jù)。在scikit-learn中,您可以通過設置remove=('headers', 'footers', 'quotes') 來做到這一點。F分數(shù)將較低,但是它更符合實際。 |
例子 |
---|
用于文本特征提取和評估的示例 使用稀疏特征對文本文檔進行分類 |
該數(shù)據(jù)集是通過互聯(lián)網(wǎng)收集的名人的 JPEG 圖片的集合,所有詳細信息都可以在官方網(wǎng)站上找到:http://vis-www.cs.umass.edu/lfw/
每張圖片均以一張臉為中心。典型的任務稱為人臉驗證:給定一對兩張圖片,二進制分類器必須預測這兩個圖片是否來自同一個人。
另一種任務是“人臉驗證”或“人臉識別”:給定未知人物的面部圖片,通過參考先前看到的已識別人物圖片庫來識別人物姓名。
人臉驗證和人臉識別都是典型的任務,都是在一個經(jīng)過訓練的模型的輸出上執(zhí)行的。最流行的人臉檢測模型稱為Viola-Jones,在OpenCV庫中實現(xiàn)。 該人臉檢測器從各種網(wǎng)絡中提取LFW人臉圖片。
數(shù)據(jù)集特征:
類別 | 5749 |
---|---|
樣本總數(shù) | 13233 |
維數(shù) | 5828 |
特征 | 實數(shù),介于0和255之間 |
scikit-learn
提供了兩個加載程序,這些加載程序?qū)⒆詣酉螺d,緩存,解析元數(shù)據(jù)文件,解碼jpeg并將感興趣的部分轉(zhuǎn)換為映射的numpy數(shù)組。該數(shù)據(jù)集的大小大于200 MB。第一次加載通常需要花費幾分鐘以上的時間才能將JPEG文件的相關部分完全解碼為numpy數(shù)組。如果數(shù)據(jù)集已被加載一次,則通過使用joblib
緩存~/scikit_learn_data/lfw_home/
文件夾中的映射版本,以下兩次的加載時間少于200ms 。
第一個加載程序用于人臉識別任務:多類分類任務(因此有監(jiān)督學習):
>>> from sklearn.datasets import fetch_lfw_people
>>> lfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4)
>>> for name in lfw_people.target_names:
... print(name)
...
Ariel Sharon
Colin Powell
Donald Rumsfeld
George W Bush
Gerhard Schroeder
Hugo Chavez
Tony Blair
默認切片是臉部周圍的矩形,會刪除大部分背景:
>>> lfw_people.data.dtype
dtype('float32')
>>> lfw_people.data.shape
(1288, 1850)
>>> lfw_people.images.shape
(1288, 50, 37)
1140
個面孔都唯一的對應到target
數(shù)組中的一個人的ID :
>>> lfw_people.target.shape
(1288,)
>>> list(lfw_people.target[:10])
[5, 6, 3, 1, 0, 1, 3, 4, 3, 0]
第二個加載器通常用于面部驗證任務:每個樣本都是一對屬于或不屬于同一個人的兩張圖片:
>>> from sklearn.datasets import fetch_lfw_pairs
>>> lfw_pairs_train = fetch_lfw_pairs(subset='train')
>>> list(lfw_pairs_train.target_names)
['Different persons', 'Same person']
>>> lfw_pairs_train.pairs.shape
(2200, 2, 62, 47)
>>> lfw_pairs_train.data.shape
(2200, 5828)
>>> lfw_pairs_train.target.shape
(2200,)
對于sklearn.datasets.fetch_lfw_people
和 sklearn.datasets.fetch_lfw_pairs
函數(shù),都可以通過傳遞color=True
來獲得RGB顏色通道的附加維度,在這種情況下,數(shù)據(jù)形狀將為 (2200, 2, 62, 47, 3)
sklearn.datasets.fetch_lfw_pairs
的數(shù)據(jù)集被細分成3個子集:train
訓練集,test
測試集和10_folds
評估集,這意味著使用10倍交叉驗證方案來計算性能指標。
參考文獻:
Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments. Gary B. Huang, Manu Ramesh, Tamara Berg, and Erik Learned-Miller. University of Massachusetts, Amherst, Technical Report 07-49, October, 2007.
該數(shù)據(jù)集中的每個樣本對應于美國30m×30m的森林斑塊,是為了預測每個斑塊的覆蓋類型(即樹木的主要樹種)而收集的。有七個覆蓋類型,這使其成為多類分類問題。每個樣本都有54個特征,在數(shù)據(jù)集的首頁上進行了介紹 。其中一些特征是布爾類型,而其他特征則是離散或連續(xù)的測量值。
數(shù)據(jù)集特征:
類別 | 7 |
---|---|
樣本總數(shù) | 581012 |
維數(shù) | 54 |
特征 | 整型 |
sklearn.datasets.fetch_covtype
將加載森林覆蓋類型數(shù)據(jù)集,它返回一個類似于字典的對象,其data
參數(shù)對應特征矩陣,目標值位于target
。如有必要,將從網(wǎng)絡上下載數(shù)據(jù)集。
路透社語料庫第一卷(RCV1)是一個由路透社有限公司為研究目的提供的超過80萬個手動分類的新聞報道的檔案。該數(shù)據(jù)集在[1]中進行了詳細描述。
數(shù)據(jù)集特征:
類別 | 103 |
---|---|
樣本總數(shù) | 804414 |
維數(shù) | 47236 |
特征 | 實數(shù),介于0和1之間 |
sklearn.datasets.fetch_rcv1
將加載以下版本:RCV1-v2,向量,完整集,主題多標簽:
>>> from sklearn.datasets import fetch_rcv1
>>> rcv1 = fetch_rcv1()
它返回具有以下屬性的類字典對象:
data
:特征矩陣是Scipy CSR稀疏矩陣,具有804414個樣本和47236個特征。非零值包含余弦標準化的對數(shù)TF-IDF向量。在[1]中提出了一個按時間順序的劃分:前面23149個樣本是訓練集。最后的781265個樣本是測試集。這是按照LYRL2004官方時間順序進行的。該數(shù)組具有0.16%的非零值:
>>> rcv1.data.shape
(804414, 47236)
target
:目標值存儲在Scipy CSR稀疏矩陣中,具有804414個樣本和103個類別。每個樣本在其類別中的值為1,在其他類別中的值為0。該數(shù)組具有3.15%的非零值:
>>> rcv1.target.shape
(804414, 103)
sample_id
:每個樣本都可以通過其ID進行識別,范圍從2286到810596(帶間隙):
>>> rcv1.sample_id[:3]
array([2286, 2287, 2288], dtype=uint32)
target_names
:每個樣本的主題目標值。每個樣本至少屬于一個主題,最多屬于17個主題。有103個主題,每個主題都由一個字符串表示。他們的語料庫頻率跨越五個數(shù)量級,從“ GMIL”的5個出現(xiàn)到“ CCAT”的381327:
>>> rcv1.target_names[:3].tolist()
['E11', 'ECAT', 'M11']
如有必要,將從rcv1主頁下載數(shù)據(jù)集。壓縮后的大小約為656 MB。
參考文獻
1(1,2)Lewis, D. D., Yang, Y., Rose, T. G., & Li, F. (2004). RCV1: A new benchmark collection for text categorization research. The Journal of Machine Learning Research, 5, 361-397.
KDD Cup '99數(shù)據(jù)集是通過處理MIT Lincoln Lab [1]創(chuàng)建的1998 DARPA入侵檢測系統(tǒng)(IDS)評估數(shù)據(jù)集的tcpdump部分而創(chuàng)建的。人工數(shù)據(jù)(在數(shù)據(jù)集首頁上進行了描述)是使用封閉網(wǎng)絡和人工注入的攻擊生成的,以在后臺正常活動的情況下產(chǎn)生大量不同類型的攻擊。由于最初的目標是為監(jiān)督學習算法生成大型訓練集,所以有很大一部分(80.1%)的異常數(shù)據(jù)在現(xiàn)實世界中是不現(xiàn)實的,因此不適合用于旨在檢測“異?!睌?shù)據(jù)的無監(jiān)督異常檢測,即:
因此,我們將KDD數(shù)據(jù)集轉(zhuǎn)換為兩個不同的數(shù)據(jù)集:SA和SF。
SA是通過簡單選擇所有正常數(shù)據(jù)和少量異常數(shù)據(jù)得出的,異常比例為1%。
SF就像在[2]中一樣,簡單地獲取屬性logged_in為正的數(shù)據(jù),從而集中在入侵攻擊上,其攻擊率為0.3%。
http和smtp是SF的兩個子集,對應于第三個特征等于'http'( 或者 ‘smtp’ )
一般KDD結(jié)構(gòu):
樣本總數(shù) | 4898431 |
---|---|
維數(shù) | 41 |
特征 | 離散(整數(shù))或連續(xù)(浮點) |
目標標簽 | str,“正?!??;虍惓n愋偷拿Q |
SA結(jié)構(gòu):
樣本總數(shù) | 976158 |
---|---|
維數(shù) | 41 |
特征 | 離散(整數(shù))或連續(xù)(浮點) |
目標標簽 | str,“正?!??;虍惓n愋偷拿Q |
SF結(jié)構(gòu):
樣本總數(shù) | 699691 |
---|---|
維數(shù) | 4 |
特征 | 離散(整數(shù))或連續(xù)(浮點) |
目標標簽 | str,“正?!薄;虍惓n愋偷拿Q |
http結(jié)構(gòu):
樣本總數(shù) | 619052 |
---|---|
維數(shù) | 3 |
特征 | 離散(整數(shù))或連續(xù)(浮點) |
目標標簽 | str,“正?!??;虍惓n愋偷拿Q |
smtp結(jié)構(gòu):
樣本總數(shù) | 95373 |
---|---|
維數(shù) | 3 |
特征 | 離散(整數(shù))或連續(xù)(浮點) |
目標標簽 | str,“正?!?。或異常類型的名稱 |
sklearn.datasets.fetch_kddcup99
將加載kddcup99數(shù)據(jù)集;它返回一個類似于字典的對象,其中data
對應特征矩陣,目標值位于中target
。如有必要,將從網(wǎng)絡上下載數(shù)據(jù)集。
數(shù)據(jù)集特征:
實例數(shù) | 20640 |
---|---|
屬性數(shù)量 | 8個數(shù)字預測屬性和1個目標變量 |
屬性信息 | - MedInc 中位數(shù)收入 - HouseAge 房屋平均年齡 - AveRooms 平均房間數(shù) - AveBedrms 平均臥室數(shù) - Population 人口 - AveOccup 平均房屋出租率 - Latitude 房子街區(qū)緯度 - Longitude 房子街區(qū)經(jīng)度 |
缺失值 | 無 |
該數(shù)據(jù)集是從StatLib存儲庫獲得的。 http://lib.stat.cmu.edu/datasets/
目標變量是加利福尼亞地區(qū)的房屋中位價。
該數(shù)據(jù)集來自1990年美國人口普查,每個人口普查區(qū)塊組使用一行。街區(qū)小組是美國人口普查局發(fā)布樣本數(shù)據(jù)的最小地理單位(街區(qū)小組通常人口為600至3,000人)。
可以使用該sklearn.datasets.fetch_california_housing
函數(shù)下載/加載 。
參考文獻
Pace, R. Kelley and Ronald Barry, Sparse Spatial Autoregressions, Statistics and Probability Letters, 33 (1997) 291-297
此外,scikit-learn包括各種隨機樣本生成器,可用于構(gòu)建大小和復雜度受控的人工數(shù)據(jù)集。
這些生成器生成特征矩陣和相應的離散目標。
make_blobs和make_classification通過。
make_blobs
和make_classification
都通過為每個類分配一個或多個正態(tài)分布的點集群來創(chuàng)建多類數(shù)據(jù)集集。 make_blobs
提供有關每個聚類的中心和標準偏差的更好控制,并用于演示聚類。 make_classification
專門通過相關,冗余和非信息性特征,類別的高斯聚類以及特征空間的線性變換等方式引入噪聲
make_gaussian_quantiles
將單個高斯聚類劃分為由同心超球體分隔的近似相等大小的類。 make_hastie_10_2
產(chǎn)生類似的10維二分類問題。
make_circles
與make_moons
生成對某些算法(例如基于質(zhì)心的聚類或線性分類)具有挑戰(zhàn)性的二維二分類數(shù)據(jù)集(包括可選的高斯噪聲)。它們對于可視化很有用。make_circles
產(chǎn)生具有球形決策邊界的高斯數(shù)據(jù)以進行二元分類,同時 make_moons
產(chǎn)生兩個交織的半圓。
make_multilabel_classification
生成帶有多個標簽的隨機樣本,以反映出從多個主題混合而來的一堆單詞。每個文檔的主題數(shù)是從泊松分布中得出的,主題本身是從固定的隨機分布中得出的。同樣,單詞的數(shù)量是從泊松分布中抽取的,單詞是從多項式分布抽取的,其中每個主題都定義了單詞的概率分布。 在以下方面簡化了 bag-of-words mixtures (單詞混合包) :
make_biclusters (shape, n_clusters, *[, …]) |
生成具有恒定塊對角線結(jié)構(gòu)的數(shù)組以進行雙聚類。 |
---|---|
make_checkerboard (shape, n_clusters, *[, …]) |
生成具有棋盤格結(jié)構(gòu)的數(shù)組以進行雙聚類。 |
make_regression
產(chǎn)生的回歸目標是隨機特征的可選稀疏隨機線性組合,帶有噪聲。它的特征可能是不相關的,或者是低秩的(少數(shù)特征占大多數(shù)方差)。。
其他回歸生成器根據(jù)隨機特征確定性地生成函數(shù)。 make_sparse_uncorrelated
產(chǎn)生的目標是四個具有固定系數(shù)的特征的線性組合。其他特征顯示非線性關系, make_friedman1
是由多項式和正弦變換聯(lián)系起來的,make_friedman2
包括特征的乘法和往復; make_friedman3
類似于目標上的arctan變換。
make_s_curve ([n_samples, noise, random_state]) |
生成S曲線數(shù)據(jù)集。 |
---|---|
make_swiss_roll ([n_samples, noise, random_state]) |
生成瑞士卷(swiss roll)數(shù)據(jù)集。 |
make_low_rank_matrix ([n_samples, …]) |
生成具有鐘形奇異值的低階矩陣 |
---|---|
make_sparse_coded_signal (n_samples, *, …) |
生成信號作為字典元素的稀疏組合。 |
make_spd_matrix (n_dim, *[, random_state]) |
生成隨機對稱的正定矩陣。 |
make_sparse_spd_matrix ([dim, alpha, …]) |
生成一個稀疏對稱定正矩陣。 |
Scikit-learn還嵌入了一些示例 JPEG 圖像,由它們的作者在知識共享許可下發(fā)布。這些圖像可以用于測試算法和2維數(shù)據(jù)通道。
load_sample_images () |
加載樣本圖像以進行圖像處理。 |
---|---|
load_sample_image (image_name) |
加載單個樣本圖像的numpy數(shù)組 |
警告 |
---|
圖像的默認編碼基于uint8 類型來存儲。如果將輸入轉(zhuǎn)換為浮點表示,機器學習算法通常最有效。另外,如果你打算使用matplotlib.pyplpt.imshow ,不要忘記按以下示例中的步驟縮放到0-1的范圍。 |
例子: |
---|
使用K均值的顏色量化 |
scikit-learn包括用于以svmlight / libsvm格式加載數(shù)據(jù)集的實用函數(shù)。在這種格式中,每行代碼的形式是 <label> <feature-id>:<feature-value> <feature-id>:<feature-value> ...
,這種格式特別適合于稀疏數(shù)據(jù)集。在本模塊中,X
使用了scipy稀疏CSR矩陣,y
使用了numpy數(shù)組。
你可以按如下方式加載數(shù)據(jù)集:
>>> from sklearn.datasets import load_svmlight_file
>>> X_train, y_train = load_svmlight_file("/path/to/train_dataset.txt")
...
你也可以一次加載兩個(或更多)數(shù)據(jù)集:
>>> X_train, y_train, X_test, y_test = load_svmlight_files(
... ("/path/to/train_dataset.txt", "/path/to/test_dataset.txt"))
...
在這種情況下,X_train
并X_test
保證具有相同數(shù)量的特征。另一種達到同樣效果的方法是固定特征的數(shù)量:
>>> X_test, y_test = load_svmlight_file(
... "/path/to/test_dataset.txt", n_features=X_train.shape[1])
...
相關鏈接: |
---|
svmlight / libsvm格式的公共數(shù)據(jù)集:https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets 更快的API兼容實現(xiàn):https://github.com/mblondel/svmlight-loader |
openml.org是機器學習數(shù)據(jù)和實驗的公共存儲庫,它允許每個人都可以上傳開放的數(shù)據(jù)集。
在sklearn.datasets
模塊下,可以使用 sklearn.datasets.fetch_openml
函數(shù)從存儲庫下載數(shù)據(jù)集。
例如,要下載小鼠大腦中基因表達的數(shù)據(jù)集:
>>> from sklearn.datasets import fetch_openml
>>> mice = fetch_openml(name='miceprotein', version=4)
要完全指定數(shù)據(jù)集,你需要提供名稱和版本,盡管版本是可選的,請參見下面的“ 數(shù)據(jù)集版本”。數(shù)據(jù)集總共包含1080個示例,這些示例屬于8個不同的類別:
>>> mice.data.shape
(1080, 77)
>>> mice.target.shape
(1080,)
>>> np.unique(mice.target)
array(['c-CS-m', 'c-CS-s', 'c-SC-m', 'c-SC-s', 't-CS-m', 't-CS-s', 't-SC-m', 't-SC-s'], dtype=object)
您可以通過查看DESCR
和details
屬性獲取有關數(shù)據(jù)集的更多信息:
>>> print(mice.DESCR)
**Author**: Clara Higuera, Katheleen J. Gardiner, Krzysztof J. Cios
**Source**: [UCI](https://archive.ics.uci.edu/ml/datasets/Mice+Protein+Expression) - 2015
**Please cite**: Higuera C, Gardiner KJ, Cios KJ (2015) Self-Organizing
Feature Maps Identify Proteins Critical to Learning in a Mouse Model of Down
Syndrome. PLoS ONE 10(6): e0129126...
>>> mice.details
{'id': '40966', 'name': 'MiceProtein', 'version': '4', 'format': 'ARFF',
'upload_date': '2017-11-08T16:00:15', 'licence': 'Public',
'url': 'https://www.openml.org/data/v1/download/17928620/MiceProtein.arff',
'file_id': '17928620', 'default_target_attribute': 'class',
'row_id_attribute': 'MouseID',
'ignore_attribute': ['Genotype', 'Treatment', 'Behavior'],
'tag': ['OpenML-CC18', 'study_135', 'study_98', 'study_99'],
'visibility': 'public', 'status': 'active',
'md5_checksum': '3c479a6885bfa0438971388283a1ce32'}
在DESCR
包含數(shù)據(jù)的任意文本說明,同時details
包含openml字典存儲的元數(shù)據(jù),如數(shù)據(jù)集id。有關更多詳細信息,請參見OpenML文檔。小鼠蛋白質(zhì)數(shù)據(jù)集的data_id
是40609,你可以使用此id(或名稱)在openml網(wǎng)站上獲取有關該數(shù)據(jù)集的更多信息:
>>> mice.url
'https://www.openml.org/d/40966'
該data_id
還唯一識別OpenML數(shù)據(jù)集:
>>> mice.details
{'id': '4550', 'name': 'MiceProtein', 'version': '1', 'format': 'ARFF',
'creator': ...,
'upload_date': '2016-02-17T14:32:49', 'licence': 'Public', 'url':
'https://www.openml.org/data/v1/download/1804243/MiceProtein.ARFF', 'file_id':
'1804243', 'default_target_attribute': 'class', 'citation': 'Higuera C,
Gardiner KJ, Cios KJ (2015) Self-Organizing Feature Maps Identify Proteins
Critical to Learning in a Mouse Model of Down Syndrome. PLoS ONE 10(6):
e0129126. [Web Link] journal.pone.0129126', 'tag': ['OpenML100', 'study_14',
'study_34'], 'visibility': 'public', 'status': 'active', 'md5_checksum':
'3c479a6885bfa0438971388283a1ce32'}
數(shù)據(jù)集由唯一指定data_id
,但不一定由其名稱指定。具有相同名稱的數(shù)據(jù)集可以存在多個不同的“版本”,這些“版本”可以包含完全不同的數(shù)據(jù)集。如果發(fā)現(xiàn)某個數(shù)據(jù)集的特定版本包含重大問題,則可以將其停用。使用名稱指定數(shù)據(jù)集將返回仍處于可用狀態(tài)的數(shù)據(jù)集的最早版本。這意味著fetch_openml(name="miceprotein")
如果較早的版本不可用,則可能在不同的時間返回不同的結(jié)果。你可以看到我們上面獲取的data_id
為40966的數(shù)據(jù)集是“ miceprotein ”數(shù)據(jù)集的版本1:
>>> mice.details['version']
'1'
實際上,該數(shù)據(jù)集只有一個版本。另一方面,鳶尾花數(shù)據(jù)集具有多個版本:
>>> iris = fetch_openml(name="iris")
>>> iris.details['version']
'1'
>>> iris.details['id']
'61'
>>> iris_61 = fetch_openml(data_id=61)
>>> iris_61.details['version']
'1'
>>> iris_61.details['id']
'61'
>>> iris_969 = fetch_openml(data_id=969)
>>> iris_969.details['version']
'3'
>>> iris_969.details['id']
'969'
用名稱“ iris”指定數(shù)據(jù)集會產(chǎn)生最早的版本,即版本1,它的data_id
是61。為了確保始終獲得此確切的數(shù)據(jù)集,最可靠的方法是通過data_id
來指定它。另一個data_id`為969的數(shù)據(jù)集是版本3(版本2已停用),并且包含數(shù)據(jù)的二進制版本:
>>> np.unique(iris_969.target)
array(['N', 'P'], dtype=object)
你還可以指定名稱和版本,這也可以唯一標識數(shù)據(jù)集:
>>> iris_version_3 = fetch_openml(name="iris", version=3)
>>> iris_version_3.details['version']
'3'
>>> iris_version_3.details['id']
'969'
參考文獻:
Vanschoren, van Rijn, Bischl and Torgo “OpenML: networked science in machine learning”, ACM SIGKDD Explorations Newsletter, 15(2), 49-60, 2014.
scipy -learn適用于存儲為numpy數(shù)組或scipy稀疏矩陣的任何數(shù)字數(shù)據(jù)。其他可轉(zhuǎn)換為數(shù)字數(shù)組的類型(如panda DataFrame)也可以接受。
以下是將標準列數(shù)據(jù)加載為scikit-learn可用格式的一些推薦方法:
datasets.load_svmlight_file
用于svmlight或libSVM稀疏格式datasets.load_files
用于文本文件的目錄,其中每個目錄的名稱是每個類別的名稱,每個目錄內(nèi)的每個文件對應于該類別中的一個樣本對于一些其他數(shù)據(jù),例如圖像,視頻和音頻,你可以參考:
存儲為字符串(在panda數(shù)據(jù)流中很常見)的分類(或命名)特征需要使用sklearn.preprocessing.OneHotEncoder
或sklearn.preprocessing.OrdinalEncoder
轉(zhuǎn)換為數(shù)字特征。請參閱預處理數(shù)據(jù)。
注意:如果您管理自己的數(shù)字數(shù)據(jù),建議使用優(yōu)化的文件格式,例如HDF5,以減少數(shù)據(jù)加載時間。諸如H5Py,PyTables和pandas之類的各種庫都提供了Python接口,用于以該格式的數(shù)據(jù)的讀取和寫入。
更多建議: