上一篇介紹了scikit-learn
中的幾個玩具數(shù)據(jù)集,本篇介紹scikit-learn
提供的一些真實的數(shù)據(jù)集。
玩具數(shù)據(jù)集:scikit-learn 基礎(chǔ)(01)--『數(shù)據(jù)加載』之玩具數(shù)據(jù)集
1. 獲取數(shù)據(jù)集
與玩具數(shù)據(jù)集不同,真實的數(shù)據(jù)集的數(shù)據(jù)不僅數(shù)據(jù)特征多,而且數(shù)據(jù)量也比較大,
所以沒有直接包含在scikit-learn
庫中。
雖然scikit-learn
中提供了在線加載數(shù)據(jù)的函數(shù),不過由于網(wǎng)絡(luò)方面的原因,在線加載幾乎不可能成功。
我離線下載了所有scikit-learn
的真實數(shù)據(jù),并且轉(zhuǎn)換成了緩存文件,經(jīng)測試可正常離線使用。
已經(jīng)轉(zhuǎn)換好的離線數(shù)據(jù)集:
- olivetti:https://url11.ctfile.com/f/45455611-930509718-42d985?p=6872
- 20newsgroups:https://url11.ctfile.com/f/45455611-930509625-f32241?p=6872
- lfw_home:https://url11.ctfile.com/f/45455611-930509715-c10239?p=6872
- covertype:https://url11.ctfile.com/f/45455611-930509631-f5e629?p=6872
- RCV1:https://url11.ctfile.com/f/45455611-930509760-30d2a2?p=6872
- kddcup99-py3:https://url11.ctfile.com/f/45455611-930509652-4f47ea?p=6872
- kddcup99_10-py3:https://url11.ctfile.com/f/45455611-930509637-2f0131?p=6872
- cal_housing:https://url11.ctfile.com/f/45455611-930509628-395dab?p=6872
注:所有文件的下載密碼都是:6872
下載上面的 zip 包之后,解壓到本地某個目錄中(下面的示例是:d:\share\sklearn-realdata
),
加載離線數(shù)據(jù)集的方法如下:
import os
# sklearn一共提供了9種加載真實數(shù)據(jù)的方法
from sklearn.datasets import fetch_olivetti_faces
from sklearn.datasets import fetch_20newsgroups
from sklearn.datasets import fetch_20newsgroups_vectorized
from sklearn.datasets import fetch_lfw_people
from sklearn.datasets import fetch_lfw_pairs
from sklearn.datasets import fetch_covtype
from sklearn.datasets import fetch_rcv1
from sklearn.datasets import fetch_kddcup99
from sklearn.datasets import fetch_california_housing
home_dir = "d:\share\sklearn-realdata"
data = fetch_olivetti_faces(data_home=os.path.join(home_dir, "olivetti"))
print(data)
data = fetch_20newsgroups(data_home=os.path.join(home_dir, "20newsgroups"))
print(data)
data = fetch_20newsgroups_vectorized(data_home=os.path.join(home_dir, "20newsgroups"))
print(data)
data = fetch_lfw_people(data_home=home_dir)
print(data)
data = fetch_lfw_pairs(data_home=home_dir)
print(data)
data = fetch_covtype(data_home=home_dir)
print(data)
data = fetch_rcv1(data_home=home_dir)
print(data)
# 只加載10%的數(shù)據(jù)
data = fetch_kddcup99(data_home=home_dir)
print(data)
# 加載全部的數(shù)據(jù)
data = fetch_kddcup99(data_home=home_dir, percent10=False)
print(data)
data = fetch_california_housing(data_home=os.path.join(home_dir, "cal_housing"))
print(data)
加載離線數(shù)據(jù)集的關(guān)鍵在于設(shè)置 data_home
參數(shù)。
2. 數(shù)據(jù)集概況
真實數(shù)據(jù)和之前的玩具數(shù)據(jù)集相比,它的優(yōu)勢在于數(shù)據(jù)取自實際應(yīng)用之中,更能夠反映實際問題的復(fù)雜性。
用它來學(xué)習(xí)算法時,可以提前遇到各種調(diào)整模型的問題。
scikit-learn
一個提供了9 種加載真實數(shù)據(jù)集的函數(shù),實際是7 種數(shù)據(jù)集。
2.1. Olivetti 面部數(shù)據(jù)集
這個數(shù)據(jù)集來自從 AT&T,包含40 個不同個體的人臉圖像的數(shù)據(jù)集,每個個體有10 張不同的圖片。
這些圖像是在不同的時間拍攝的,并且具有不同的照明和面部表情(睜開/閉上眼睛,微笑/不微笑)以及面部細節(jié)(戴眼鏡/不戴眼鏡)。
所有的圖像都采用黑色均勻的背景,并且個體處于直立的正面位置,允許一定的側(cè)移。
圖像被量化為256 個灰度級并以8 位無符號整數(shù)的形式存儲。
這個數(shù)據(jù)集的目標是從 0 到 39 的整數(shù),代表圖中人物的身份。
由于每一類只有十個樣例,這個相對較小的數(shù)據(jù)集對無監(jiān)督學(xué)習(xí)或半監(jiān)督學(xué)習(xí)具有有趣的挑戰(zhàn)性。
此數(shù)據(jù)集的加載函數(shù):fetch_olivetti_faces
2.2. 新聞組數(shù)據(jù)集
這是一個常用的文本分類數(shù)據(jù)集,包含大約20,000 篇新聞文章,這些文章均勻分布在20 個不同的主題中。
這些新聞組數(shù)據(jù)來源于 1997 年之前的新聞文章,包括各種不同的新聞來源和日期。
這個數(shù)據(jù)集的目標是進行文本分類,將每篇文章分配到其對應(yīng)的主題中。
該數(shù)據(jù)集通常用于訓(xùn)練和測試文本分類算法,例如樸素貝葉斯分類器、支持向量機或決策樹等。
由于數(shù)據(jù)集的大小適中,它也適用于較小的機器學(xué)習(xí)模型。
此數(shù)據(jù)集的加載函數(shù):fetch_20newsgroups
和fetch_20newsgroups_vectorized
。
這兩個函數(shù)的主要區(qū)別在于:
-
fetch_20newsgroups
返回的是一個原始的文本列表,每個新聞組的數(shù)據(jù)都以字符串形式給出 -
fetch_20newsgroups_vectorized
返回的是一個可以直接用于機器學(xué)習(xí)或評估的向量數(shù)據(jù)集,它已經(jīng)為文本數(shù)據(jù)進行了特征提取,返回的是一個稀疏矩陣
2.3. 人臉數(shù)據(jù)集
這個數(shù)據(jù)集是一個包含13233 張人臉圖像的數(shù)據(jù)集,用于測試人臉識別算法。
這些圖像均來自互聯(lián)網(wǎng),包含不同的人臉角度、表情和光照條件。
每張圖像都給出了對應(yīng)的人名,共有5749 個個體,其中大部分人只有一張圖像,部分人有多張圖像。
此數(shù)據(jù)集的目標是測試人臉識別算法的準確率,通常用于評估算法的準確性、召回率和交叉驗證等。
由于數(shù)據(jù)集包含大量的人臉圖像和個體,因此也適用于訓(xùn)練和測試深度學(xué)習(xí)模型。
此數(shù)據(jù)集的加載函數(shù):fetch_lfw_people
和fetch_lfw_pairs
。
這兩個函數(shù)的主要區(qū)別在于:
-
fetch_lfw_people
數(shù)據(jù)集中每個人至少有一張圖片,每張圖片都對應(yīng)不同的人。這個數(shù)據(jù)集的目標是訓(xùn)練一個分類器來識別不同的人 -
fetch_lfw_pairs
數(shù)據(jù)集中每個人有兩張不同圖片。這些圖片是在不同的時間、不同的光照條件下拍攝的。這個數(shù)據(jù)集的目標是訓(xùn)練一個分類器來識別同一個人在不同條件下的圖片
2.4. 森林覆蓋數(shù)據(jù)集
這個數(shù)據(jù)集是一個包含森林覆蓋類型信息的植被覆蓋類型數(shù)據(jù)集。
該數(shù)據(jù)集包含581,012 個樣本,每個樣本是一個30m x 30m 區(qū)域的森林覆蓋類型,
包括 7 種類型:云杉/冷杉、洛奇波爾松、黃松、三葉楊/柳樹、阿斯彭、花旗松和克魯姆霍爾茨。
除了前 10 個特征是浮點數(shù)外,其余特征都是one-hot 變量。這個數(shù)據(jù)集的目標是預(yù)測給定區(qū)域的森林覆蓋類型。
適用于分類相關(guān)的機器學(xué)習(xí)算法的測試。
此數(shù)據(jù)集的加載函數(shù):fetch_covtype
2.5. RCV1 多標簽數(shù)據(jù)集
這個數(shù)據(jù)集是一個包含1063389 個樣本的大規(guī)模文本分類數(shù)據(jù)集。
該數(shù)據(jù)集由英國廣播公司(BBC)和英國郵報(The Guardian)的新聞文章組成,每篇文章都被標記為其中一個類別(例如體育、娛樂、政治等)。
RCV1
數(shù)據(jù)集的目標是訓(xùn)練和測試文本分類算法。由于數(shù)據(jù)集規(guī)模較大,它適合用于評估大型機器學(xué)習(xí)模型和分布式計算系統(tǒng)的性能。RCV1
數(shù)據(jù)集包含多個屬性,如文本內(nèi)容、類別標簽和樣本權(quán)重等,可以用于訓(xùn)練多種不同類型的文本分類模型,例如樸素貝葉斯分類器、支持向量機或深度學(xué)習(xí)模型等。
此數(shù)據(jù)集的加載函數(shù):fetch_rcv1
2.6. kddcup99 數(shù)據(jù)集
這個數(shù)據(jù)集是一個網(wǎng)絡(luò)入侵檢測的數(shù)據(jù)集,源自DARPA
入侵檢測評估項目。
該數(shù)據(jù)集包含了 9 個星期的網(wǎng)絡(luò)連接數(shù)據(jù),分為訓(xùn)練集和測試集兩部分。
訓(xùn)練集包含了4920917
條連接記錄,測試集包含了4555136
條連接記錄。
這些連接記錄涵蓋了多種網(wǎng)絡(luò)協(xié)議和攻擊類型,例如 TCP、UDP、ICMP 等以及 DoS、U2R、R2L 等攻擊類型。
數(shù)據(jù)集中的每個連接記錄包含41 個固定的特征屬性,包括源 IP 地址、目的 IP 地址、協(xié)議類型、字節(jié)數(shù)等,以及一個類標識符表示該連接是否屬于攻擊類型。
kddcup99
數(shù)據(jù)集是網(wǎng)絡(luò)入侵檢測領(lǐng)域廣泛使用的事實基準數(shù)據(jù)集,可用于評估和比較不同入侵檢測算法的性能。
此數(shù)據(jù)集的加載函數(shù):fetch_kddcup99
由于此數(shù)據(jù)集數(shù)據(jù)量很大,所以默認只加載 10%的數(shù)據(jù),若要加載全部數(shù)據(jù)設(shè)置參數(shù)percent10=False
。
本文第一節(jié)加載離線數(shù)據(jù)的示例中也加載示例。
2.7. 加州住房數(shù)據(jù)集
這個數(shù)據(jù)集包含了加利福尼亞州 1990 年所有城市的房價信息。
數(shù)據(jù)集中的每個樣本都包含 8 個變量的值:
- MedianHouseValue(中位數(shù)房價):以 1000 美元為單位。
- MedianIncome(中位數(shù)收入):以年為單位,以美元為單位。
- HouseAge(房齡):以年為單位。
- Rooms(房間數(shù)):整數(shù)。
- Bedrooms(臥室數(shù)):整數(shù)。
- Population(人口):以 1000 人為單位。
- HousingUnits(房屋數(shù)量):以千為單位。
- SquareMiles(平方英里):以平方英里為單位。
該數(shù)據(jù)集被廣泛用于房價預(yù)測相關(guān)的機器學(xué)習(xí)算法的學(xué)習(xí)中。
此數(shù)據(jù)集的加載函數(shù):fetch_california_housing
文章來源:http://www.zghlxwxcb.cn/news/detail-748830.html
3. 總結(jié)
當(dāng)機器學(xué)習(xí)的算法掌握到一定程度的時候,一定會想嘗試用真實的數(shù)據(jù)集來訓(xùn)練模型。
這些經(jīng)典的真實數(shù)據(jù)集不僅數(shù)據(jù)量豐富,而且涵蓋的范圍廣,用來練手和提高自己的能力再好不過。文章來源地址http://www.zghlxwxcb.cn/news/detail-748830.html
到了這里,關(guān)于【scikit-learn基礎(chǔ)】--『數(shù)據(jù)加載』之真實數(shù)據(jù)集的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!