劃分訓(xùn)練全陨、測(cè)試集和數(shù)據(jù)觀察

訓(xùn)練集與測(cè)試集

一般在進(jìn)行模型的測(cè)試時(shí)爆班,我們會(huì)將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。在給定的樣本空間中辱姨,拿出大部分樣本作為訓(xùn)練集來(lái)訓(xùn)練模型柿菩,剩余的小部分樣本使用剛建立的模型進(jìn)行預(yù)測(cè)。

  • 訓(xùn)練集與測(cè)試集

train_test_split 函數(shù)利用偽隨機(jī)數(shù)生成器將數(shù)據(jù)集打亂雨涛。默認(rèn)情況下0.75為訓(xùn)練集,0.25測(cè)試集枢舶。

  • sklearn.model_selection.train_test_split

  • 劃分?jǐn)?shù)據(jù)集其參數(shù)有:

    arrays :允許的輸入是列表,數(shù)字陣列

    test_size :float镜悉,int或None(默認(rèn)為無(wú)),如果浮點(diǎn)數(shù)應(yīng)在0.0和1.0之間祟辟,并且表示要包括在測(cè)試拆分中的數(shù)據(jù)集的比例。如果int侣肄,表示測(cè)試樣本的絕對(duì)數(shù)

    train_size :float旧困,int或None(默認(rèn)為無(wú)),如果浮點(diǎn)數(shù)應(yīng)在0.0到1.0之間,表示數(shù)據(jù)集包含在列車(chē)拆分中的比例稼锅。如果int吼具,表示列車(chē)樣本的絕對(duì)數(shù)

    random_state :int或RandomState,用于隨機(jī)抽樣的偽隨機(jī)數(shù)發(fā)生器狀態(tài),參數(shù) random_state 默認(rèn)設(shè)置為 None矩距,這意為著每次打散都是不同的拗盒。

from sklearn.model_selection import train_test_split
from sklearn import datasets

iris = datasets.load_iris()
print(iris.data.shape,iris.target.shape[0])
X_train,X_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.3,random_state=12)
print(X_train.shape,y_train.shape[0])
print(X_test.shape,y_test.shape[0])
(150, 4) 150
(105, 4) 105
(45, 4) 45

觀察數(shù)據(jù)

在構(gòu)建機(jī)器學(xué)習(xí)模型之前,通常最好檢查一下數(shù)據(jù)锥债,看看如果不用機(jī)器學(xué)習(xí)能不能輕松完成任務(wù)陡蝇,或者需要的信息有沒(méi)有包含在數(shù)據(jù)中。
此外哮肚,檢查數(shù)據(jù)也是發(fā)現(xiàn)異常值和特殊值的好方法登夫。舉個(gè)例子,可能有些鳶尾花的測(cè)量單位是英寸而不是厘米允趟。在現(xiàn)實(shí)世界中恼策,經(jīng)常會(huì)遇到不一致的數(shù)據(jù)和意料之外的測(cè)量數(shù)據(jù)。檢查數(shù)據(jù)的最佳方法之一就是將其可視化潮剪。一種可視化方法是繪制散點(diǎn)圖(scatter plot)涣楷。數(shù)據(jù)散點(diǎn)圖將一個(gè)特征作為 x 軸,另一個(gè)特征作為 y 軸抗碰,將每一個(gè)數(shù)據(jù)點(diǎn)繪制為圖上的一個(gè)點(diǎn)狮斗。不幸的是,計(jì)算機(jī)屏幕只有兩個(gè)維度弧蝇,所以我們一次只能繪制兩個(gè)特征(也可能是3 個(gè))碳褒。用這種方法難以對(duì)多于 3 個(gè)特征的數(shù)據(jù)集作圖迄汛。解決這個(gè)問(wèn)題的一種方法是繪制散點(diǎn)圖矩陣(pair plot),從而可以兩兩查看所有的特征骤视。如果特征數(shù)不多的話,比如我們這里有 4 個(gè)鹃觉,這種方法是很合理的专酗。但是你應(yīng)該記住,散點(diǎn)圖矩陣無(wú)法同時(shí)顯示所有特征之間的關(guān)系盗扇,所以這種可視化方法可能無(wú)法展示數(shù)據(jù)的某些有趣內(nèi)容祷肯。

  • pandas.plotting.scatter_matrix()
    參數(shù):
    frame : DataFrame
    alpha : float,可選 應(yīng)用的透明度
    figsize :( float疗隶,float)佑笋,可選 以英寸為單位的元組(寬度,高度)
    ax : Matplotlib軸對(duì)象斑鼻,可選
    grid : bool蒋纬,可選 將此設(shè)置為T(mén)rue將顯示網(wǎng)格
    diagonal : {'hist','kde'} 在'kde'和'hist'之間選擇對(duì)角線中的核密度估計(jì)或直方圖
    marker : str坚弱,可選 Matplotlib標(biāo)記類(lèi)型蜀备,默認(rèn)為'o'
    hist_kwds : 其他繪圖關(guān)鍵字參數(shù) 要傳遞給hist函數(shù)
    density_kwds : 其他繪圖關(guān)鍵字參數(shù) 要傳遞給核密度估計(jì)圖
    range_padding : float,可選 圖像在x軸荒叶,y軸原點(diǎn)附近留白碾阁,值越大,留白越多些楣,默認(rèn)值為0.05
    kwds : 其他繪圖關(guān)鍵字參數(shù) 要傳遞給分散函數(shù)

數(shù)據(jù)點(diǎn)的顏色與鳶尾花的品種相對(duì)應(yīng)脂凶。為了繪制這張圖,我們首先將 NumPy 數(shù)組轉(zhuǎn)換成 pandas DataFrame愁茁。pandas 有一個(gè)繪制散點(diǎn)圖矩陣的函數(shù)蚕钦,叫作 scatter_matrix。矩陣的對(duì)角線是每個(gè)特征的直方圖

import pandas as pd
import mglearn 
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加載iris數(shù)據(jù)
iris = load_iris()
# 將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集
X_train,X_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=12)
# 利用X_train中的數(shù)據(jù)創(chuàng)建DataFrame
# 利用iris_dataset.feature_names中的字符串對(duì)數(shù)據(jù)列進(jìn)行標(biāo)記 
iris_dataframe = pd.DataFrame(X_train,columns=iris.feature_names)
# 利用DataFrame創(chuàng)建散點(diǎn)圖矩陣埋市,按y_train著色
grr = pd.plotting.scatter_matrix(iris_dataframe,c=y_train,figsize=(15,15),marker='o',
                        hist_kwds={'bins':20},s=60,alpha=0.8,cmap=mglearn.cm3)
iris.png

從圖中可以看出冠桃,利用花瓣和花萼的測(cè)量數(shù)據(jù)基本可以將三個(gè)類(lèi)別區(qū)分開(kāi)。這說(shuō)明機(jī)器學(xué)習(xí)模型很可能可以學(xué)會(huì)區(qū)分它們道宅。

參考資料:
Python機(jī)器學(xué)習(xí)基礎(chǔ)教程
Pandas官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末食听,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子污茵,更是在濱河造成了極大的恐慌樱报,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泞当,死亡現(xiàn)場(chǎng)離奇詭異迹蛤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)盗飒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嚷量,“玉大人,你說(shuō)我怎么就攤上這事逆趣〉埽” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宣渗,是天一觀的道長(zhǎng)抖所。 經(jīng)常有香客問(wèn)我,道長(zhǎng)痕囱,這世上最難降的妖魔是什么田轧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮鞍恢,結(jié)果婚禮上傻粘,老公的妹妹穿的比我還像新娘。我一直安慰自己有序,他們只是感情好抹腿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著旭寿,像睡著了一般警绩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盅称,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天肩祥,我揣著相機(jī)與錄音,去河邊找鬼缩膝。 笑死混狠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疾层。 我是一名探鬼主播将饺,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼痛黎!你這毒婦竟也來(lái)了予弧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤湖饱,失蹤者是張志新(化名)和其女友劉穎掖蛤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體井厌,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚓庭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年致讥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片器赞。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垢袱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出港柜,到底是詐尸還是另有隱情惶桐,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布潘懊,位于F島的核電站,受9級(jí)特大地震影響贿衍,放射性物質(zhì)發(fā)生泄漏授舟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一贸辈、第九天 我趴在偏房一處隱蔽的房頂上張望释树。 院中可真熱鬧,春花似錦擎淤、人聲如沸奢啥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桩盲。三九已至,卻和暖如春席吴,著一層夾襖步出監(jiān)牢的瞬間赌结,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工孝冒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柬姚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓庄涡,卻偏偏與公主長(zhǎng)得像量承,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子穴店,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354