1. 程式人生 > >Python資料探勘---繪圖原始碼具體詳解

Python資料探勘---繪圖原始碼具體詳解

第一節

介紹

資料探勘是一個隱式提取以前未知的潛在有用的資料資訊提取方式。它使用廣泛,並且是眾多應用的技術基礎。

本文介紹那些使用Python資料探勘實踐用於發現和描述結構模式資料的工具。近些年來,Python在開發以資料為中心的應用中被用的越來越多。感謝大型科學計算社群的支援以及大大豐富的資料分析函式庫。尤其是,我們可以看到如何:

• 匯入和視覺化資料

• 資料分類

• 使用迴歸分析和相關測量法發現數據之間的關係

• 資料降維以壓縮和視覺化資料帶來的資訊

• 分析結構化資料

每個主題都會提供程式碼例項,它們基於四個主要的Python資料分析和處理的類庫:numpy,matplotlib,sklearn和networkx。

第二節

資料匯入和視覺化

通常,資料分析的第一步由獲取資料和匯入資料到我們的工作環境組成。我們可以使用以下的Python程式碼簡單的下載資料:

  1. import urllib2  
  2. url = 'http://aima.cs.berkeley.edu/data/iris.csv'
  3. u = urllib2.urlopen(url)  
  4. localFile = open('iris.csv'', 'w')  
  5. localFile.write(u.read())  
  6. localFile.close()  

在以上的程式碼片段中,我們使用了urllib2類庫以獲取伯克利大學網站的一個檔案,並使用標準類庫提供的File物件把它儲存到本地磁碟。資料包含鳶尾花(iris)資料集,這是一個包含了三種鳶尾花(山鳶尾、維吉尼亞鳶尾和變色鳶尾)的各50個數據樣本的多元資料集,每個樣本都有四個特徵(或者說變數),即花萼(sepal)和花瓣(petal)的長度和寬度。以釐米為單位。

資料集以CSV(逗號分割值)的格式儲存。CSV檔案可以很方便的轉化並把其中的資訊儲存為適合的資料結構。此資料集有5列(譯者注:原文是行,但這裡應該是列的意思),前4列包含著特徵值,最後一列代表著樣本型別。CSV檔案很容易被numpy類庫的genfromtxt方法解析:

  1. from numpy import genfromtxt, zeros  
  2. # read the first 4 columns  
  3. data = genfromtxt('iris.csv',delimiter=',',usecols=(0,1,2,3))   
  4. # read the fifth column  
  5. target = genfromtxt('iris.csv',delimiter=',',usecols=(4),dtype=str)  
在上面的例子中我們建立了一個包含特徵值的矩陣以及一個包含樣本型別的向量。我們可以通過檢視我們載入的資料結構的shape值來確認資料集的大小:
  1. print data.shape  
  2. (150, 4)  
  3. print target.shape  
  4. (150,)  
我們也可以檢視我們有多少種樣本型別以及它們的名字:
  1. print set(target) # build a collection of unique elements  
  2. set(['setosa', 'versicolor', 'virginica'])  

當我們處理新資料的時候,一項很重要的任務是嘗試去理解資料包含的資訊以及它的組織結構。視覺化可以靈活生動的展示資料,幫助我們深入理解資料。

使用pylab類庫(matplotlib的介面)的plotting方法可以建一個二維散點圖讓我們在兩個維度上分析資料集的兩個特徵值:

  1. from pylab import plot, show  
  2. plot(data[target=='setosa',0],data[target=='setosa',2],'bo')  
  3. plot(data[target=='versicolor',0],data[target=='versicolor',2],'ro')  
  4. plot(data[target=='virginica',0],data[target=='virginica',2],'go')  
  5. show()  
上面那段程式碼使用第一和第三維度(花萼的長和寬),結果如下圖所示: 

在上圖中有150個點,不同的顏色代表不同的型別;藍色點代表山鳶尾,紅色點代表變色鳶尾,綠色點代表維吉尼亞鳶尾。

另一種常用的檢視資料的方法是分特性繪製直方圖。在本例中,既然資料被分為三類,我們就可以比較每一類的分佈特徵。下面這個程式碼可以繪製資料中每一型別的第一個特性(花萼的長度):

  1. from pylab import figure, subplot, hist, xlim, show  
  2. xmin = min(data[:,0])  
  3. xmax = max(data[:,0])  
  4. figure()  
  5. subplot(411) # distribution of the setosa class (1st, on the top)  
  6. hist(data[target=='setosa',0],color='b',alpha=.7)  
  7. xlim(xmin,xmax)  
  8. subplot(412) # distribution of the versicolor class (2nd)  
  9. hist(data[target=='versicolor',0],color='r',alpha=.7)  
  10. xlim(xmin,xmax)  
  11. subplot(413) # distribution of the virginica class (3rd)  
  12. hist(data[target=='virginica',0],color='g',alpha=.7)  
  13. xlim(xmin,xmax)  
  14. subplot(414) # global histogram (4th, on the bottom)  
  15. hist(data[:,0],color='y',alpha=.7)  
  16. xlim(xmin,xmax)  
  17. show()  

結果如下圖:

根據上圖的直方圖,我們可以根據資料型別區分理解資料的特徵。例如,我們可以觀察到,山鳶尾的平均花萼長度小於維吉尼亞鳶尾。

第三節

分類

分類是一個數據挖掘方法,用於把一個數據集中的樣本資料分配給各個目標類。實現這個方法的模組叫做分類器。使用分類器需要以下兩步:訓練和分類。訓練是指採集已知其特定類歸屬的資料並基於這些資料建立分類器。 分類是指使用通過這些已知資料建立的分類器來處理未知的資料,以判斷未知資料的分類情況。

Sklearn類庫包含很多分類器的實現,本章我們將會使用高斯樸素貝葉斯來分析我們在第一章載入的鳶尾花資料,包含山鳶尾、變色鳶尾和維吉尼亞鳶尾。最後我們把字串陣列轉型成整型資料:

  1. t = zeros(len(target))  
  2. t[target == 'setosa'] = 1  
  3. t[target == 'versicolor'] = 2  
  4. t[target == 'virginica'] = 3  
現在我們已經做好例項化和訓練分類器的準備了:
  1. from sklearn.naive_bayes import GaussianNB  
  2. classifier = GaussianNB()  
  3. classifier.fit(data,t) # training on the iris dataset  
分類器可以由predict方法完成,並且只要輸出一個樣例就可以很簡單的檢測:
  1. print classifier.predict(data[0])  
  2. [ 1.]  
  3. 相關推薦

    Python資料---繪圖原始碼具體

    第一節 介紹 資料探勘是一個隱式提取以前未知的潛在有用的資料資訊提取方式。它使用廣泛,並且是眾多應用的技術基礎。 本文介紹那些使用Python資料探勘實踐用於發現和描述結構模式資料的工具。近些年來,Python在開發以資料為中心的應用中被用的越來

    分享《Python資料入門與實踐》高清中文版+高清英文版+原始碼

    下載:https://pan.baidu.com/s/1J7DOGrjoF7HnaSZ8LvFh_A更多資料分享:http://blog.51cto.com/3215120 《Python資料探勘入門與實踐》高清中文版+高清英文版+原始碼 高清中文版PDF,251頁,帶目錄和書籤,能夠複製貼上;高清英文版

    Python資料的——資料探索

    資料質量分析: 資料質量的分析是資料分析資料中有效資料準備過程中的一個重要環節。是資料預處理的前提重要的環節。也是為資料探勘的分析的有效性和準確性的基礎。 資料質量的分析主要是原始資料中是否存在骯資料。髒資料包括是:缺失值 不一致的資料 重複資料或者是特殊的符號 資料特徵分析:

    python資料課程】十.Pandas、Matplotlib、PCA繪圖實用程式碼補充

    這篇文章主要是最近整理《資料探勘與分析》課程中的作品及課件過程中,收集了幾段比較好的程式碼供大家學習。同時,做資料分析到後面,除非是研究演算法創新的,否則越來越覺得資料非常重要,才是有價值的東西。後面的課程會慢慢講解Python應用在Hadoop和Spark中,以及netwo

    python資料課程】二十.KNN最近鄰分類演算法分析及平衡秤TXT資料集讀取

    這是《Python資料探勘課程》系列文章,也是我這學期上課的部分內容及書籍的一個案例。本文主要講述KNN最近鄰分類演算法、簡單實現分析平衡秤資料集,希望這篇文章對大家有所幫助,同時提供些思路。內容包括:

    python資料課程】二十一.樸素貝葉斯分類器及中文文字輿情分析

    這是《Python資料探勘課程》系列文章,也是我上課內容及書籍中的一個案例。本文主要講述樸素貝葉斯分類演算法並實現中文資料集的輿情分析案例,希望這篇文章對大家有所幫助,提供些思路。內容包括:1.樸素貝葉斯數學原理知識    2.naive_bayes用法及簡單案例    3.

    python資料分析微信朋友圈

    參考https://blog.csdn.net/qinyuanpei/article/details/79360703,基於python3.6實現微信朋友圈性別、地區、個性簽名、頭像四個維度的分析。 我的GitHub專案地址https://github.com/sanciyuan/wechat_

    [Python資料]第3章、資料探索

    1、缺失值處理:刪除、插補、不處理 2、離群點分析:簡單統計量分析、3σ原則(資料服從正態分佈)、箱型圖(最好用) 離群點(異常值)定義為小於QL-1.5IQR或大於Qu+1.5IQR import pandas as pd catering_sale = '../data/catering

    Python資料入門與實戰:第一章

    程式碼來源於:https://github.com/hLvMxM/Learning_Data_Mining_with_Python/blob/master/Chapter 1/ch1_affinity.ipynb 其中註釋是在自己學習中加上去的, 便於初學者看懂 分析文字為:affinity

    Python資料過程

    資料探勘的建模過程 定義挖掘目標 明確系統完成後想要達成什麼樣的效果。 我們需要分析應用領域,瞭解相關領域的情況,熟悉背景知識,弄清使用者需求。 資料取樣 從業務系統中抽取一個與挖掘目標相關的樣本資料子集。 抽取資料的標準,一是相關性,二是可靠性,三是有效性。 衡量取樣

    python資料——資料預處理

    在資料探勘中 海量的資料存在大量的不完整(有缺失值)、不一致 有異常的資料,嚴重影響到資料的挖掘的建模過程執行的效率。甚至導致挖掘的資料結果偏差甚大。資料探勘預處理的過程中主要包括:資料清洗,資料整合,資料變換,資料規約。 處理過程如圖: 4.1 資料的清洗主要是對原始資料集中的無

    Python資料的基礎理解

    資料探勘是從大量的資料中找到隱含的、先前未知的、對決策有潛在價值的關係和模式和趨勢。並且利用這些知識和規則建立用於決策和支援的模型。資料探勘有助於企業發現業務的趨勢,提供決策性的支援的方法。 資料探勘 的任務有:資料探索,資料預處理,分類和預測 聚類和分析 時序預測,關聯規則挖掘 和偏差檢測

    Python資料學習筆記(12)淘寶圖片爬蟲實戰

           所謂圖片爬蟲,即是從網際網路中自動把對方伺服器上的圖片爬下來的爬蟲程式。 一、圖片爬蟲前的網頁連結分析 1.首先開啟淘寶首頁,在搜尋框中輸入關鍵詞,如“神舟”,在搜尋結果介面中點選下一頁,分別開啟第一頁,第二頁,第三頁的搜尋結果,並記下每一頁結果的URL至記

    Python資料學習——親和性分析

    最近了解了一些Python資料探勘方面的內容,主要學習了《Python資料探勘入門與實踐》這本書的內容,在這裡對書中的內容以及我遇到的一些問題進行整理。 資料探勘旨在讓計算機根據已有的資料作出決策。 資料探勘的第一步一般是建立資料集,資料集主要包括: (1)樣本:表示真實世界中的物體

    python資料實戰筆記——文字挖掘(1):語料庫構建

    什麼是文字挖掘 ?   文字挖掘是抽取有效、新穎、有用、可理解的、散佈在文字檔案中的有價值知識,並且利用這些知識更好地組織資訊的過程。 一、搭建語料庫 語料庫:要進行文字分析的所有文件的集合。 需要用到的模組:os、os.path、codecs、pandas 程

    python資料實戰筆記——文字挖掘(4):詞雲繪製

    概念: 詞雲:詞雲是指對文字中詞頻較高的分詞,給予視覺上的突出,形成“關鍵詞渲染”,從而過濾掉大量的文字資訊,使瀏覽者一眼掃過就可以領略文字的主旨。 需要用到的包:wordcloud、matplotlib wordcloud包下載地址:http://www.l

    python資料實戰筆記——文字分析(6):關鍵詞提取

    緊接上篇的文件,這節學習關鍵字的提取,關鍵詞——keyword,是人們快速瞭解文件內容,把握主題的重要內容。 #匯入需要的模組 import os import codecs import pandas import jieba import jieba.ana

    Python資料-NLP

    NLTK Python上著名的⾃然語⾔處理庫 自帶語料庫,詞性分類庫 自帶分類,分詞,等等功能 強⼤的社群支援 還有N多的簡單版wrapper nltk的安裝十分便捷,只需要pip就可以。相對Python2版本來說,NLTK更支援Python3版本。  pip i

    機器學習實戰與python資料python計算機視覺

    兩本書的 pdf都比較好找  點這裡是機器學習實戰的CSDN介紹   這裡是對應原始碼     個人部落格也列出過可執行的pythin資料探勘原始碼  python計算機視覺的官網與原始碼在這裡 因為看了機器學習實戰

    python資料入門與實踐----------特徵值,主成分分析

    #http://archive.ics.uci.edu/ml/machine-learning-databases/adult/ import os import pandas as pd adult_filename ="adult.data" adult = pd.read_csv(adu