import warnings
import matplotlib.pyplot as plt
import pandas as pd
import pandas_profiling
import scipy.stats as st
import seaborn as sns
warnings.filterwarnings('ignore')
path = './data/'
train = pd.read_csv(path + 'train.csv')
test = pd.read_csv(path + 'testa.csv')
print('-' * 50)
print(train.shape)
print('-' * 50)
print('-' * 50)
print(test.shape)
print('-' * 50)
資料顯示:
在我們平日的資料分析中,資料的概況在資料處理的過程中往往能起到很大的作用,要養成看資料集的head()以及shape的習慣,這會讓每一步的操作更放心,避免出現一系列其他的錯誤
data.describe()
——獲取資料的相關統計量
data.info()
——獲取資料型別
print(train.describe())
print('-' * 50)
print(train.info())
print('-' * 50)
print(test.describe())
print('-' * 50)
print(test.info())
print('-' * 50)
資料總覽為:
**值的分布與頻數為:
接下來我們通過製表來觀察**值的分布情況,**如下:
y = train['label']
plt.figure(1)
plt.title('default')
sns.distplot(y, rug=true, bins=20)
plt.figure(2)
plt.title('normal')
sns.distplot(y, kde=false, fit=st.norm)
plt.figure(3)
plt.title('log normal')
sns.distplot(y, kde=false, fit=st.lognorm)
sns.distplot(train['label'])
如上的三段**分別繪製了基於**值的常規分布圖,取對分布圖
偏度和峰度(skewness and kurtosis) :
偏度(skewness),是統計資料分布偏斜方向和程度的度量,是統計資料分布非對稱程度的數字特徵。定義上偏度是樣本的三階標準化矩。偏度定義中包括正態分佈(偏度=0),右偏分布(也叫正偏分布,其偏度》0),左偏分布(也叫負偏分布,其偏度<0)。
峰度(peakedness;kurtosis)又稱峰態係數。表徵概率密度分布曲線在平均值處峰值高低的特徵數。直**來,峰度反映了峰部的尖度。隨機變數的峰度計算方法為:隨機變數的四階中心矩與方差平方的比值。峰度包括正態分佈(峰度值=3),厚尾(峰度值》3),瘦尾(峰度值<3)。
如下所示:
最後我們檢視一下本次**值的梯度與峰值情況
print("skewness: %f" % train['label'].skew()) # 梯度
print("kurtosis: %f" % train['label'].kurt()) # 峰度
print('-' * 50)
兩值如下所示:
至此我們對於資料的初步探索就結束了,以上的操作我們可以通過pandas_profile庫自動完成,**與顯示效果如下:
資料探索在每乙個專案中都是不可或缺的乙個步驟,通過eda,我們可以對資料有乙個初步的了解,為後續的特徵工程做準備。這個階段的主要工作還是借助於各個簡單的統計量來對資料整體的了解,分析各個型別變數相互之間的關係,以及用合適的圖形視覺化出來直觀觀察。
datawhale資料探勘任務六
通過之前的部落格可以看出,隨機森林的表現效果比較好。所以本次stacking融合的比較基準就是lr。至於融合,用的是隨機森林和邏輯回歸進行融合。為 任務六 使用stacking進行模型融合 構建 stacking 模型,用之前表現較好的lr和隨機森林進行模型融合 s clf stackingclas...
datawhale資料探勘課程 任務二
特徵衍生 在實際工作中,自己用到的是特徵公升維,即one hot encoding。另一種特徵衍生方法是特徵組合,比如拼接年齡 收入區間成為乙個新特徵,但是在金融行業一般不這麼做 因為可解釋性差容易不符合監管要求。計算iv函式。在機器學習的二分類問題中,iv值 information value 主...
DataWhale 資料探勘 Task3
特徵工程 import pandas as pd import numpy as np import tsfresh as tsf from tsfresh import extract features,select features from tsfresh.utilities.datafram...