盡管已經有了scikit-learnstatsmodelsseaborn等非常優秀的數據建模庫,但實際數據分析過程中常用到的一些功能場景仍然需要編寫數十行以上的代碼才能實現。

而今天要給大家推薦的dython就是一款集成了諸多實用功能的數據建模工具庫,幫助我們更加高效地完成數據分析過程中的諸多任務:

通過下面兩種方式均可完成對dython的安裝:

pip install dython

或:

conda install -c conda-forge dython

dython中目前根據功能分類劃分為以下幾個子模塊:

  • data_utils

data_utils子模塊集成了一些基礎性的數據探索性分析相關的API,如identify_columns_with_na()可用於快速檢查數據集中的缺失值情况:

>> df = pd.DataFrame({'col1': ['a', np.nan, 'a', 'a'], 'col2': [3, np.nan, 2, np.nan], 'col3': [1., 2., 3., 4.]})
>> identify_columns_with_na(df)
column na_count
1 col2 2
0 col1 1

identify_columns_by_type()可快速選擇數據集中具有指定數據類型的字段:

>> df = pd.DataFrame({'col1': ['a', 'b', 'c', 'a'], 'col2': [3, 4, 2, 1], 'col3': [1., 2., 3., 4.]})
>> identify_columns_by_type(df, include=['int64', 'float64'])
['col2', 'col3']

one_hot_encode()可快速對數組進行獨熱編碼

>> one_hot_encode([1,0,5])
[[0. 1. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 1.]]

split_hist()則可以快速繪制分組直方圖,幫助用戶快速探索數據集特征分布:

import pandas as pd
from sklearn import datasets
from dython.data_utils import split_hist # Load data and convert to DataFrame
data = datasets.load_breast_cancer()
df = pd.DataFrame(data=data.data, columns=data.feature_names)
df['malignant'] = [not bool(x) for x in data.target] # Plot histogram
split_hist(df, 'mean radius', split_by='malignant', bins=20, figsize=(15,7))

  • nominal

nominal子模塊包含了一些進階的特征相關性度量功能,例如其中的associations()可以自適應由連續型和類別型特征混合的數據集,並自動計算出相應的PearsonCramer's VTheil's U、條件熵等多樣化的系數;cluster_correlations()可以繪制出基於層次聚類的相關系數矩陣圖等實用功能:


  • model_utils

model_utils子模塊包含了諸多對機器學習模型進行性能評估的工具,如ks_abc()

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from dython.model_utils import ks_abc # Load and split data
data = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=.5, random_state=0) # Train model and predict
model = LogisticRegression(solver='liblinear')
model.fit(X_train, y_train)
y_pred = model.predict_proba(X_test) # Perform KS test and compute area between curves
ks_abc(y_test, y_pred[:,1])

metric_graph()

import numpy as np
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier
from dython.model_utils import metric_graph # Load data
iris = datasets.load_iris()
X = iris.data
y = label_binarize(iris.target, classes=[0, 1, 2]) # Add noisy features
random_state = np.random.RandomState(4)
n_samples, n_features = X.shape
X = np.c_[X, random_state.randn(n_samples, 200 * n_features)] # Train a model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=0)
classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True, random_state=0)) # Predict
y_score = classifier.fit(X_train, y_train).predict_proba(X_test) # Plot ROC graphs
metric_graph(y_test, y_score, 'pr', class_names=iris.target_names)

import numpy as np
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.multiclass import OneVsRestClassifier
from dython.model_utils import metric_graph # Load data
iris = datasets.load_iris()
X = iris.data
y = label_binarize(iris.target, classes=[0, 1, 2]) # Add noisy features
random_state = np.random.RandomState(4)
n_samples, n_features = X.shape
X = np.c_[X, random_state.randn(n_samples, 200 * n_features)] # Train a model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=0)
classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True, random_state=0)) # Predict
y_score = classifier.fit(X_train, y_train).predict_proba(X_test) # Plot ROC graphs
metric_graph(y_test, y_score, 'roc', class_names=iris.target_names)

  • sampling

sampling子模塊則包含了boltzmann_sampling()weighted_sampling()兩種數據采樣方法,簡化數據建模流程。

dython作為一個處於快速開發迭代過程的Python庫,陸續會有更多的實用功能引入,感興趣的朋友們可以前往https://github.com/shakedzy/dython查看更多內容或對此項目保持關注。


以上就是本文的全部內容,歡迎在評論區與我進行討論~

dython:Python數據建模寶藏庫的更多相關文章

  1. Python數據可視化-seaborn庫之countplot

    在Python數據可視化中,seaborn較好的提供了圖形的一些可視化功效. seaborn官方文檔見鏈接:http://seaborn.pydata.org/api.html countplot是s ...

  2. Python數據科學“冷門”庫

    Python是一種神奇的語言.事實上,它是近幾年世界上發展最快的編程語言之一,它一次又一次證明了它在開發工作和數據科學立場各行業的實用性.整個Python系統和庫是對於世界各地的用戶(無論是初學者或者 ...

  3. (長期更新)【python數據建模實戰】零零散散問題及解决方案梳理

    注1:本文旨在梳理匯總出我們在建模過程中遇到的零碎小問題及解决方案(即當作一份答疑文檔),會不定期更新,不斷完善, 也歡迎大家提問,我會填寫進來. 注2:感謝閱讀.為方便您查找想要問題的答案,可以就本 ...

  4. 9 個鮮為人知的 Python 數據科學庫

    除了 pandas.scikit-learn 和 matplotlib,還要學習一些用 Python 進行數據科學的新技巧. Python 是一種令人驚歎的語言.事實上,它是世界上增長最快的編程語言之 ...

  5. 20個最有用的Python數據科學庫

    核心庫與統計 1. NumPy(提交:17911,貢獻者:641) 一般我們會將科學領域的庫作為清單打頭,NumPy 是該領域的主要軟件庫之一.它旨在處理大型的多維數組和矩陣,並提供了很多高級的數學函 ...

  6. Python數學建模-02.數據導入

    數據導入是所有數模編程的第一步,比你想象的更重要. 先要學會一種未必最佳,但是通用.安全.簡單.好學的方法. 『Python 數學建模 @ Youcans』帶你從數模小白成為國賽達人. 1. 數據導入 ...

  7. Python的工具包[1] -> pandas數據預處理 -> pandas 庫及使用總結

    pandas數據預處理 / pandas data pre-processing 目錄 關於 pandas pandas 庫 pandas 基本操作 pandas 計算 pandas 的 Series ...

  8. head first python菜鳥學習筆記(第七章) ——web應用之為數據建模

    問題1. #意思是從athletelist.py中導入AthleteListfrom athletelist import AthleteList 源程序代碼 import pickle from a ...

  9. Python測試 ——開發工具庫

    Web UI測試自動化 splinter - web UI測試工具,基於selnium封裝. selenium - web UI自動化測試. mechanize- Python中有狀態的程序化Web瀏 ...

  10. Python常用的標准庫以及第三方庫有哪些?

    20個必不可少的Python庫也是基本的第三方庫 讀者您好.今天我將介紹20個屬於我常用工具的Python庫,我相信你看完之後也會覺得離不開它們.他們是: Requests.Kenneth Reitz ...

隨機推薦

  1. Java關鍵字final、static

    一.final根據程序上下文環境,Java關鍵字final有“這是無法改變的”或者“終態的”含義,它可以修飾非抽象類.非抽象類成員方法和變量.你可能出於兩種理解而需要阻止改變:設計或效率. final ...

  2. 2016福州大學軟件工程第三次個人作業-K米軟件產品評測

    K米軟件測評個人作業結果統計如下: 評分標准: 按照棟哥布置的第三次個人作業--K米測評制定評分標准如下: 第一部分:調研.評測 下載並使用,描述最簡單直觀的個人第一次上手體驗. 0.5 按照描述的b ...

  3. asp.net identity 3.0.0 在MVC下的基本使用 序言

    本人也尚在學習使用之中,錯誤之處請大家指正. 開發環境:vs2015 UP1   項目環境:asp.net 4.6.1   模板為:asp.net 5 模板     identity版本為:asp.n ...

  4. Bootstrap文本對齊風格

    在排版中離不開文本的對齊方式.在CSS中常常使用text-align來實現文本的對齊風格的設置.其中主要有四種風格:  左對齊,取值left  居中對齊,取值center  右對齊,取值r ...

  5. AngularJS -- Module (模塊)

    點擊查看AngularJS系列目錄 轉載請注明出處:http://www.cnblogs.com/leosx/ 什麼是AngularJS的模塊 我們所說的模塊,是你的AngularJS應用程序的一個組 ...

  6. php 例子 如何轉換ISO8601為 utc時間

    //firstpowertime "2017-01-02T13:22:22" 獲取時間$firstpowertime=$list[$i]['firstpowertime'];//判 ...

  7. 人類創造未來的思想先鋒:這些 TED 演示深深震撼著我們

    今年亮點之一是穀歌創始人拉裏佩奇的演講.他有一個核心觀點:特別成功的公司,是那些敢於想象未來,並付出行動創造未來的公司.這聽上去是老生常談,但又確實是個真理.他實際上想說預測未來的最好方式就是創造它, ...

  8. 使用 prismjs 在網頁中高亮顯示代碼

    最近在總結這一年來制作的網頁模塊,網站風格統一的情况下,網站頁面結構不會改變,因此想記錄一部分網站中統一的結構,方便日後維護. 用到的相關技術: vue, element-ui, prismjs, v ...

  9. zabbix學習筆記----安裝----2019.03.26

    1.zabbix官方yum源地址:repo.zabbix.com 2.安裝zabbix server zabbix server使用mysql作為數據庫,在zabbix 3.X版本,安裝zabbix- ...

  10. tomcat探索

    雙擊apache-tomcat-7.0.64.exe,一路默認點. 靜態頁路徑 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webap ...