6個套路入門ML:用鳶尾花data建立python機器學習的初步印象(一)

注:這是一篇翻譯文章,來自于
Your First Machine Learning Project in Python Step-By-Step - Machine Learning Mastery**运沦,標題為《Your First Machine Learning Project in PythonStep-By-Step》泵额;即一步步帶你入門第一個python機器學習項目;包括的內(nèi)容有:1携添、python的機器學習需要哪些準備?2篓叶、導入數(shù)據(jù)3烈掠、數(shù)據(jù)的統(tǒng)計描述4、數(shù)據(jù)的可視化5缸托、用一些算法進行估計6左敌、進行一些預測。
就像作者在文后說的俐镐,通過用python做這個項目矫限,不需要知道關(guān)于機器學習的專業(yè)性內(nèi)容,只需要按照python代碼把結(jié)果做出來佩抹,能夠分析就行叼风。
但是丧失,我認為以機器學習之博大精深假夺,這個項目只是管中窺豹,之所以把這篇文章拿出來赂弓,我認為它幫我們初步感受到了python機器學習的一整套基本流程枢里,以及對機器學習的基本印象孽鸡。
(一)事前的準備(本教程假定Python版本為2.7或3.5。)
在做機器學習之前栏豺,要安裝5個庫:scipy彬碱、numpy、matplotlib奥洼、pandas巷疼、sklearn
這5個庫主要是用來進行數(shù)值運算、計算溉卓、繪圖皮迟、數(shù)據(jù)分析以及數(shù)據(jù)挖掘的庫,具體每個庫作用及其安裝可以去網(wǎng)上搜索就知道了桑寨,這點作者也在文中說了一下伏尼。
值得注意的是python3版本在windows系統(tǒng)下安裝scipy,需要去網(wǎng)站:
Python Extension Packages for Windows**尉尾,下載whl文件爆阶,然后再去安裝。
但是,在這之前辨图,由于Scipy的安裝需要依賴MKL庫班套,官方的Numpy不包含MKL,故從Python Extension Packages for Windows** 下載合適版本的包含MKL庫的第三方Numpy+mkl庫故河,然后在cmd下進入到Python安裝目錄下的scripts文件下使用 pipinstall 路徑+whl文件來安裝(具體可以去搜索一下)吱韭。
對于sklearn庫的安裝,如果你已經(jīng)安裝了scipy鱼的、numpy庫理盆,直接在cmd下采用升級的方式安裝,這是因為sklearn建立在NumPy凑阶,SciPy和matplotlib模塊之上:
pip install -U scikit-learn
檢查安裝的庫是否成功及其版本

# Check the versions of libraries
# Python version
import sys
print('Python: {}'.format(sys.version))
# scipy
import scipy
print('scipy: {}'.format(scipy.__version__))
# numpy
import numpy
print('numpy: {}'.format(numpy.__version__))
# matplotlib
import matplotlib
print('matplotlib: {}'.format(matplotlib.__version__))
# pandas
import pandas
print('pandas: {}'.format(pandas.__version__))
# scikit-learn
import sklearn
print('sklearn: {}'.format(sklearn.__version__))

(二)導入數(shù)據(jù)
導入庫

# Load libraries
import pandas
from pandas.tools.plotting import scatter_matrix #導入散點圖矩陣包
import matplotlib.pyplot as plt  
from sklearn import model_selection  #模型比較和選擇包
from sklearn.metrics import classification_report  #將主要分類指標以文本輸出
from sklearn.metrics import confusion_matrix #計算混淆矩陣猿规,主要來評估分類的準確性
from sklearn.metrics import accuracy_score #計算精度得分
from sklearn.linear_model import LogisticRegression #線性模型中的邏輯回歸
from sklearn.tree import DecisionTreeClassifier #樹算法中的決策樹分類包
from sklearn.neighbors import KNeighborsClassifier #導入最近鄰算法中的KNN最近鄰分類包
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis #判別分析算法中的線性判別分析包
from sklearn.naive_bayes import GaussianNB #樸素貝葉斯中的高斯樸素貝葉斯包
from sklearn.svm import SVC  #支持向量機算法中的支持向量分類包

上述導入各種程序包主要來自于sklearn的包,具體可以參見

http://scikit-learn.org/dev/index.html
對python機器學習中sklearn各種包的介紹宙橱。
接下來再導入數(shù)據(jù).

# Load dataset
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = pandas.read_csv(url, names=names) #讀取csv數(shù)據(jù)

注:這里是從某一網(wǎng)頁導入數(shù)據(jù)姨俩,但是如果網(wǎng)頁打不開很可能就導入不了,事實上师郑,在python的sklearn數(shù)據(jù)庫中自帶鳶尾花數(shù)據(jù)集环葵,在這里可以通過sklearn導入。
from sklearn import datasets
iris = datasets.load_iris()

(三)數(shù)據(jù)的描述性統(tǒng)計
這一步主要是對數(shù)據(jù)的結(jié)構(gòu)呕乎、變量等進行初步了解积担,包括對數(shù)據(jù)的維度(樣本量、變量個數(shù)等)進行了解猬仁、詳細考察數(shù)據(jù)本身帝璧、所有屬性的描述性統(tǒng)計、按照不同類別對數(shù)據(jù)進行細分湿刽。
首先是對數(shù)據(jù)的維度(樣本量的烁、變量個數(shù)等)進行了解。

# shape
print(dataset.shape)

輸出結(jié)果為:(150, 5)诈闺,即該數(shù)據(jù)有150個樣本值以及5個變量(屬性)渴庆。
其次是詳細考察數(shù)據(jù)本身。

# head
print(dataset.head(20))

你將會看到前20行數(shù)據(jù):

數(shù)據(jù)前20行.jpg

通過數(shù)據(jù)信息簡單介紹一下注明的“鳶尾花數(shù)據(jù)集”:
鳶尾花(iris)是數(shù)據(jù)挖掘常用到的一個數(shù)據(jù)集雅镊,包含150種鳶尾花的信息襟雷,每50種取自三個鳶尾花種之一(setosa,versicolour或virginica)。每個花的特征用下面的5種屬性描述萼片長度(Sepal.Length)仁烹、萼片寬度(Sepal.Width)耸弄、花瓣長度(Petal.Length)、花瓣寬度(Petal.Width)卓缰、類(Species)计呈。
第三是砰诵,數(shù)據(jù)所有屬性的描述性統(tǒng)計。

# descriptions
print(dataset.describe())

可以看到如下結(jié)果捌显,分別表示4個屬性的樣本值茁彭、均值、標準誤扶歪、最小值理肺、25%分位數(shù)、中位數(shù)击罪、75%分位數(shù)哲嘲、最大值。

描述性統(tǒng)計.jpg

第四是媳禁,不同類別的數(shù)據(jù)細分。

# class distribution
print(dataset.groupby('class').size())

可以看到画切,Iris-setosa竣稽、Iris-versicolor、Iris-virginica三大類樣本值均有50個霍弹。

(四)數(shù)據(jù)的可視化
數(shù)據(jù)可視化可以更好地了解數(shù)據(jù)毫别。在這里通過兩種圖形類型:單變量圖來更好了解每個屬性;多變量圖來更好了解每個屬性間關(guān)系典格。
4.1 單變量圖
首先是盒須圖(箱形圖)

# box and whisker plots
dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
plt.show()
箱形圖.jpg

在這里注意各個箱形圖的縱坐標(y軸)的刻度是不同的岛宦,有明顯的區(qū)分,因此可以看到耍缴,各變量表示的屬性是有區(qū)分的砾肺。
然后是直方圖

# histograms
dataset.hist()
plt.show()
直方圖.jpg

在這里橫坐標的坐標軸是有區(qū)分的。
4.2 多變量圖(也就是圖矩陣)
散點圖矩陣防嗡,這有助于發(fā)現(xiàn)變量之間的結(jié)構(gòu)化關(guān)系变汪,在這里特別要注意觀察兩變量間(變量對)基于對角線的關(guān)系,這表明變量之間的相關(guān)性與可預測關(guān)系(散點圖代表了兩變量的相關(guān)程度蚁趁,如果呈現(xiàn)出沿著對角線分布的趨勢裙盾,說明它們的相關(guān)性較高)。

# scatter plot matrix
scatter_matrix(dataset)
plt.show()

![Upload 散點圖矩陣.jpg failed. Please try again.]

未完待續(xù)他嫡。番官。。
本文完整代碼見:https://github.com/zhangjuying20000/iris-machine-learning

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钢属,一起剝皮案震驚了整個濱河市徘熔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌署咽,老刑警劉巖近顷,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件生音,死亡現(xiàn)場離奇詭異,居然都是意外死亡窒升,警方通過查閱死者的電腦和手機缀遍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饱须,“玉大人域醇,你說我怎么就攤上這事∪叵保” “怎么了譬挚?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酪呻。 經(jīng)常有香客問我减宣,道長,這世上最難降的妖魔是什么玩荠? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任漆腌,我火速辦了婚禮,結(jié)果婚禮上阶冈,老公的妹妹穿的比我還像新娘闷尿。我一直安慰自己,他們只是感情好女坑,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布填具。 她就那樣靜靜地躺著,像睡著了一般匆骗。 火紅的嫁衣襯著肌膚如雪劳景。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天绰筛,我揣著相機與錄音枢泰,去河邊找鬼。 笑死铝噩,一個胖子當著我的面吹牛衡蚂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骏庸,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼毛甲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了具被?” 一聲冷哼從身側(cè)響起玻募,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎一姿,沒想到半個月后七咧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跃惫,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年艾栋,在試婚紗的時候發(fā)現(xiàn)自己被綠了爆存。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝗砾,死狀恐怖先较,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悼粮,我是刑警寧澤闲勺,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站扣猫,受9級特大地震影響菜循,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜申尤,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一债朵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瀑凝,春花似錦、人聲如沸臭杰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渴杆。三九已至寥枝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磁奖,已是汗流浹背囊拜。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留比搭,地道東北人冠跷。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像身诺,于是被迫代替她去往敵國和親蜜托。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容