生活随笔
收集整理的這篇文章主要介紹了
【数据挖掘】数据挖掘和数据分析基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考文獻:《Python數據分析與挖掘實戰》張良均等
數據挖掘建模過程
定義挖掘目標:理解任務,確定指標數據采樣:注意數據的完整性和有效性數據探索:異常值分析、缺失值分析、相關性分析、周期性分析數據預處理:數據篩選、數據變量轉換、缺失值處理、壞數據處理、數據標準化、主成分分析、屬性選擇、數據規約挖掘建模:所屬問題分析(分類、聚類、關聯規則、時序模式、智能推薦),選用算法模型評價:應用模型對應的評價方法,根據業務對模型進行解釋和應用
數據挖掘建模工具
SAS Enterprise MinerIBM SPSS ModelerSQL ServerPythonWEKAKNIMERapidMiner/YALETipDM
數據探索
一、數據質量分析
數據預處理的前提,檢查數據中是否存在臟數據(缺失值、異常值、不一致的值、重復數據、含特殊符號的數據),箱線圖可以檢測異常值。
file_name
= r
'../data/catering_sale.xls'
catering_sale
= file_name
data
= pd
.read_excel
(catering_sale
, index_col
=u
'日期')
plt
.figure
()
plt
.rcParams
['font.sans-serif'] = ['SimHei']
plt
.rcParams
['axes.unicode_minus'] = False
p
= data
.boxplot
(return_type
='dict')
x
= p
['fliers'][0].get_xdata
()
y
= p
['fliers'][0].get_ydata
()
y
.sort
()
for i
in range(len(x
)):temp
= y
[i
] - y
[i
- 1] if i
!= 0 else -78 / 3plt
.annotate
(y
[i
], xy
=(x
[i
], y
[i
]), xytext
=(x
[i
] + 0.05 - 0.8 / temp
, y
[i
]))plt
.show
()
二、數據特征分析
分布分析:解釋數據的分布特征和分布類型:頻率分布直方圖、莖葉圖、餅圖、條形圖定量數據分布分析:求極差、決定組距和組數(極差/組距)、決定分點(分布區間)、列出頻率分布表、繪制頻率分布直方圖。定性數據分布分析:百分比/頻數對比分析:折線圖統計量分析:均值、中位數、標準差、四分位間距、變異系數CV=sbxˉ×100CV=\frac{s}\bar{x}×100%CV=bs?xˉ×100 Pandas中提供的describe方法可以得到基本統計量
file_name
= r
'../data/catering_sale.xls'
catering_sale
= file_name
data
= pd
.read_excel
(catering_sale
, index_col
=u
'日期')
data
= data
[(data
[u
'銷量'] > 400) & data
[u
'銷量'] < 5000]
statistics
= data
.describe
()[u
'銷量']
statistics
['range'] = statistics
['max'] - statistics
['min']
statistics
['var'] = statistics
['std'] / statistics
['mean']
statistics
['dis'] = statistics
['75%'] - statistics
['25%']
print(statistics
)
周期性分析:時序折線圖貢獻度分析:帕累托法則8/2定律,80%的利潤來自20%的投入,應該重點關注80%利潤的部分,繪制帕累托圖
file_name
= '../data/catering_dish_profit.xls'
dish_profit
= file_name
plt
.rcParams
['font.sans-serif'] = ['SimHei']
plt
.rcParams
['axes.unicode_minus'] = False
data
= pd
.read_excel
(dish_profit
, index_col
=u
'菜品名')
data
= data
[u
'盈利'].copy
()
data
.sort_values
(ascending
=False)
plt
.figure
()
data
.plot
(kind
='bar')
plt
.ylabel
(u
'盈利(元)')
p
= 1.0 * data
.cumsum
() / data
.sum()
p
.plot
(color
='r', secondary_y
=True, style
='-o', linewidth
=2)
plt
.annotate
(format(p
[6], '.4%'),xy
=(6, p
[6]),xytext
=(6 * 0.9, p
[6] * 0.9),arrowprops
=dict(arrowstyle
="->", connectionstyle
="arc3,rad=.2"))
plt
.ylabel
(u
'盈利(比例)')
plt
.show
()
8. 相關性分析:散點圖、散點矩陣圖、計算相關系數(Pearson、Spearman)
Pearson線性相關系數要求連續變量的取值服從正態分布
Pearson=∑i=1n(xi?xˉ)(yi?yˉ)∑i=1n(xi?xˉ)2∑i=1n(yi?yˉ)2Pearson=\frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2\sum_{i=1}^{n}(y_i-\bar{y})^2}}Pearson=∑i=1n?(xi??xˉ)2∑i=1n?(yi??yˉ?)2?∑i=1n?(xi??xˉ)(yi??yˉ?)?
不符合正態分布的變量,分類或等級變量之間的關聯性采用Spearman秩相關系數,也稱為等級相關系數,對兩個變量成對的取值按照升序或降序編秩,RiR_iRi?表示xix_ixi?的秩次,QiQ_iQi?表示yiy_iyi?的秩次,Ri?QiR_i-Q_iRi??Qi?表示秩次之差。(秩次:排序時的位置)
Spearman=1?6∑i=1n(Ri?Qi)2n(n2?1)Spearman=1-\frac{6\sum_{i=1}^{n}(R_i-Q_i)^2}{n(n^2-1)}Spearman=1?n(n2?1)6∑i=1n?(Ri??Qi?)2?
判定系數是相關系數的平方,用r2∈[0,1]r^2∈[0,1]r2∈[0,1]表示,其值越接近于1則相關性越強,越接近于0則幾乎無直線相關關系。
file_name
= r
'../data/catering_sale_all.xls'
catering_sale
= file_name
data
= pd
.read_excel
(catering_sale
, index_col
=u
'日期')
print(data
.corr
())
print(data
.corr
()[u
'百合醬蒸鳳爪'])
print(data
[u
'百合醬蒸鳳爪'].corr
(data
[u
'翡翠蒸香茜餃']))
主要數據探索函數:
方法函數功能
| sum() | 求和 |
| mean() | 求均值 |
| var() | 求方差 |
| std() | 求均值 |
| corr() | 計算相關系數矩陣 |
| cov() | 計算協方差矩陣 |
| skew() | 計算樣本值的偏度(三階矩) |
| kurt() | 計算樣本值的峰度(四階矩) |
| describe() | 樣本基本描述 |
擴展統計函數
方法函數功能
| cumsum() | 依次給出前1,2,…,n個數的和 |
| cumprod() | 依次給出前1,2,…,n個數的積 |
| cummax() | 依次給出前1,2,…,n個數的最大值 |
| cummin() | 依次給出前1,2,…,n個數的最小值 |
| rolling_sum() | 按列計算數據樣本的總和 |
| rolling_mean() | 數據樣本的算數平均數 |
| rolling_var() | 計算數據樣本的方差 |
| rolling_std() | 計算數據樣本的標準差 |
| rolling_corr() | 計算數據樣本的相關系數矩陣 |
| rolling_cov() | 計算數據樣本的協方差矩陣 |
| rolling_skew() | 樣本值的偏度 |
| rolling_kurt() | 樣本值的峰度 |
cum系列是DataFrame對象和Series對象的方法
rolling_是pandas的函數,每k列計算一次,滾動計算
Python統計作圖
方法函數功能
| plot() | 折線圖 |
| pie() | 餅狀圖 |
| hist() | 折線圖 |
| boxplot() | 箱型圖 |
| plot(logy=True) | 繪制y軸的對數圖形 |
| plot(yerr=error) | 繪制誤差條形圖 |
總結
以上是生活随笔為你收集整理的【数据挖掘】数据挖掘和数据分析基础的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。