數據分析與挖掘1

流程:
數據獲取-》探索分析與可視化-》預處理理論-》分析建模-》模型評估

數據獲取手段-
1.數據倉庫
數據庫面向業務存儲,倉庫面向主題存儲
數據庫針對應用(OLTP),倉庫針對分析(OLAP)
數據庫組織規範,倉庫冗餘大

2.監測與抓取
Python常用工具
urllib,urllib2,requests,scrapy

3.填寫,埋點,日誌
用戶填寫信息
APP或網頁埋點(特定流程的信息記錄點)
操作日誌

4.競賽網站
kaggle
阿里雲 天池

探索分析與可視化
理論鋪墊
集中趨勢:均值,中位數與分位數,衆數

.mean()       #均值
.median()      #中位數
.quantile(q=0.25)   #分位數
.mode()      #衆數  可能會有多個

離中趨勢:標準差,方差 √

.std()      #標準差
.var()       #方差
.sum()       #求和

數據分佈:偏態與峯態,正態分佈與三大分佈
在這裏插入圖片描述

.skew()       #偏態係數
.kurt()        #峯態係數

在這裏插入圖片描述
抽樣理論:抽樣誤差,抽樣精度

.sample()         #抽樣

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
異常值分析:
在這裏插入圖片描述

le = le[le<q_high+k*q_interval][le>qlow-k*q_interval]

判斷數據哪些列有異常值:data[ data.isnull() ]
判斷某列有多少異常值: sl = data["col"]         sl[ sl.isnull() ]
有異常值數據的其他信息:  data[ data["col"].isnull() ]

統計某特徵各個值數量的多少並排序
col.value_counts(normalize=True).sort_index()

data.loc[ :,["col1","col2"] ].groupby("col3")
df=df[df["col1"]<=1][df["salary"]!="name"][df["department"]]

對比分析
在這裏插入圖片描述
結構分析:
靜態分析:看各部分所佔比例
動態分析:時間軸,看變化趨勢

np.histogram(data.values, bins=np.arange(0.0, 1.1, 0.1))  #value值 從0到1.1,每隔0.1有多少個

數據預處理
特徵工程
數據和特徵決定了機器學習的上限
在這裏插入圖片描述
異常值處理
①fillna()
②刪除某一列的空值 data.dropna(subset=[“B”])
③.interpolate() 插值函數
#保留以f開頭的選項
df[ [True if item.startwith(“f”)else False for item in list(df["F"].values) ]]

標註:標籤,label
特徵選擇:

from sklearn.svm import SVR
from sklearn.tree import DecisionTreeRegressor
X=df.loc[:,["A","B","C"]]
Y=df.loc[:,"D"]
from sklearn.feature_selection import SelectKBest,RFE,SelectFormModel
skb=SelectBest(k=2)
skb.fit(X,Y)
skb.transform(X)

rfe=RFE(estimator=SVR(kernal="linear"),n_features_to_select=2,step=1)
rfe.fit_transform(X,Y)

sfm=SelectFormModel(estimator=DecisionTreeRegressor(),threshold=0.1)
sfm.fit_transform(X,Y)

機器學習與建模
機器學習:計算機以數據爲基礎,進行歸納與總結
監督學習(分類/迴歸)
非監督學習(聚類/關聯)
半監督學習

訓練集:用來訓練和擬合模型
驗證集:糾偏或改正預測
測試集:模型泛化能力的考量(泛化:對未知數據的預測能力)

KNN 樸素貝葉斯 決策樹 支持向量機 集成方法

歐式距離 :(直線距離)
曼哈頓距離:(各個維度距離累加)
明可夫斯基距離

K-nearest neighbors

from sklearn.neighbors import Nearest Neighbors ,KNeighborsClassifier
knn_clf = KNeighborsClassifier(n_neighbors=5)
knn_clf.fit(X_train,Y_train)
Y_pred = knn_clf.predict(X_validation)
from sklearn.metrics import accuracy_score,recall_score,f1_score
print("ACC:", accuracy_score(Y_validation,Y_pred))
print("REC:", recall_score(Y_validation,Y_pred))
print("F-Score:", f1_score(Y_validation,Y_pred))

樸素貝葉斯
概率:p(a)
條件概率p(a|b) 聯合概率p(a,b)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章