當前位置:編程學習大全網 - 源碼下載 - Python數據挖掘從哪些

Python數據挖掘從哪些

壹. 基於Python的數據挖掘 基本架構

1. matplotlib, 圖形化

2. pandas,數據挖掘的關鍵, 提供各種挖掘分析的算法

3. numpy, 提供基本的統計

scipy, 提供各種數學公式

4. python common lib,python基本框架

二. 環境搭建

1. 安裝python

2. 安裝pip

pandas依賴的pip版本,最低是8.0.0。如果pip是8以下的版本,如7.2.1,需要升級pip.

命令是“python -m pip install -U pip”,這是windows版本。

Linux是”pip install -U pip“

通過命令“pip --version”, 可以查看pip版本號

3. 安裝pandas

命令“pip install pandas", 這是windows版本。

Linux平臺可用

sudo apt-get install python-pandas

4. 安裝matplotlib

pip install matplotlib

三. 數據類型

pypython common type

string list tuple dict set

6鐘學列

list, tuple, string, unicode string, buffer object, xrange

pandas type

ndarray, series dateFrame

ndarray, 數組類型,新增原因:

list, tuple是基於指針+對象設計的。即list,tuple存儲的是void*指針,指針指向具體對象的數據。

因為是void*指針,所以二者可以存儲各種數據類型,即數據類型可以不統壹。

雖然存儲豐富,但如果數據量過大時,即處理大數據時,有弊端。

1. 存儲空間大,浪費內存。因為存兩部分,指針+數據

2. 讀取慢,通過index,找到指針;基於指針,找到數據

所以在大數據處理時,新增ndarray,數字類型,類似C++ 數組。存儲相同,讀取、修改快捷。

別名:array, 有利於節省內存、提高CPU的計算時間,有豐富的處理函數

series,變長字典,

類似壹維數組的對象;有數據和索引組成

新增原因:

dict是無序的,它的key和value存在映射關系。但key和value之間是不獨立的,存儲在壹起。

如果需要對壹項進行操作,會影響到另外壹項。所以有了series, series的key和value是獨立的,獨立存儲。

series的key是定長有序的。通過series.key獲取整個索引, 通過series.values獲取所有values.

series的key,可以通過series.index.name,設置唯壹的名稱。

series整體也可以設置唯壹名稱,通過series.name

DataFrame:

1. 壹個表格型的數據結構

2. 含有壹組有序的列(類似於index)

3. 可以認為是,***享壹個index的Series集合

data1={'name':['java', 'c', 'python'], 'year': [2,2,3]}

frame = pd.DataFrame(data1)

------------------------------------------------

四. 基本的數據分析流程:

1. 數據的獲取

2. 數據準備--規格化,建立各種索引index

3. 數據的顯示、描述,用於調試

如df.index, df.values, df.head(n), df.tail(n) df.describe

4. 數據的選擇

index獲取, 切片獲取, 行、列獲取, 矩形區域獲取

index獲取,df.row1 或者 df['row1']

行列,df.loc[行list, 列list], 如df.loc[0:1,['co1','col2'] ]

通過二位索引,取二維左上角,df.iloc[0,0],也可以列表 df.iloc[0:2,0:2],取前2行。

5. 簡單的統計與處理

統計平均值、最大值等

6. Grouping 分組

df.groupby(df.row1)

7. Merge合並

append追加,

contact連接, 包含append功能,也可以兩個不同的二維數據結構合並

join連接, SQL連接,基於相同字段連接,如 sql的where, a.row1 = b.row1

------------------------------------------------

五. 高級的數據處理與可視化:

1. 聚類分析

聚類是數據挖掘描述性任務和預測性任務的壹個重要組成部分,它以相似性為基礎,

把相似的對象通過靜態分類,分成不同的組別和子集。

在python中,有很多第三方庫提供了聚類算法。

聚類算法有很多, 其中K-均值算法,因為其簡單、快捷的特點,被廣泛使用。

基本原理是,

1. 查找某數據集的中心,

2. 使用均方差,計算距離。使得每壹個數據點都收斂在壹個組內;各個組是完全隔離的

案例:

>>> from pylab import *

>>> from scipy.cluster.vq import *

>>>

>>> list1=[88,64,96,85]

>>> list2=[92,99,95,94]

>>> list3=[91,87,99,95]

>>> list4 = [78,99,97,81]

>>> list5=[88,78,98,84]

>>> list6=[100,95,100,92]

>>> tempdate = (list1, list2, list3, list4, list5, list6)

>>>

>>> tempdate

([88, 64, 96, 85], [92, 99, 95, 94], [91, 87, 99, 95], [78, 99, 97, 81], [88, 78

, 98, 84], [100, 95, 100, 92])

>>> date = vstack(tempdate)

>>>

>>> date

array([[ 88, 64, 96, 85],

[ 92, 99, 95, 94],

[ 91, 87, 99, 95],

[ 78, 99, 97, 81],

[ 88, 78, 98, 84],

[100, 95, 100, 92]])

>>> centroids,abc=kmeans(date,2) #查找聚類中心,第二個參數是設置分N類,如5類,則為5

>>> centroids # 基於每列查找的中心點,可能是平均值

array([[88, 71, 97, 84],

[90, 95, 97, 90]])

>>>

>>> result,cde=vq(date,centroids) #對數據集,基於聚類中心進行分類

>>> result

array([0, 1, 1, 1, 0, 1])

2. 繪圖基礎

python描繪庫,包含兩部分,

繪圖api, matplotlib提供各種描繪接口。

集成庫,pylab(包含numpy和matplotlib中的常用方法),描繪更快捷、方便。

import numpy as np

import matplotlib.pyplot as plt

t = np.arange(0,10)

plt.plot(t, t+2)

plt.plot(t,t, 'o', t,t+2, t,t**2, 'o') #(x,y)壹組,默認是折線;‘o'是散點,

plt.bar(t,t**2) # 柱狀圖

plt.show()

--------------------

import pylab as pl

t = np.arange(0,10)

plt.plot(t, t+2)

plt.show()

3. matplotlib圖像屬性控制

色彩、樣式

名稱: 圖、橫、縱軸,

plt.title('philip\'s python plot')

plt.xlabel('date')

plt.ylabel('value')

其他: pl.figure(figsize=(8,6),dpi=100)

pl.plot(x,y, color='red', linewidth=3, lable='line1')

pl.legend(loc='upper left')

子圖

pl.subplot(211) # 整體圖片,可以分為二維部分;

#第壹個是圖的行,第二個是列;第三個是index, 從左上開始0遍歷 當前行,再下壹行。

#如果是2位數,如11,需要‘,’

axes(left, bottom, width, height) # 參數取值範圍是(0,1), left,是到左邊的距離,bottom是到下面的距離

4. pandas作圖

Series、DataFrame支持直接描繪,封裝了調用matplotlib的接口,如

series.close.plot()

df.close.plot() #具體參數類似matplotlib普通接口

屬性控制

類似matplotlib普通接口,修改各種圖片的類型,柱形圖、折線等

--------common-----------------

list, tuple, dict

--------numpy-----------------

ndarray, Series, DataFrame

  • 上一篇:夢見請輸入釣魚百發百中
  • 下一篇:Asp源碼笑話
  • copyright 2024編程學習大全網