
Data Science Utils는 Scikit-Learn API 및 Matplotlib API를 확장하여 데이터 과학 프로젝트의 작업 및 시각화를 단순화하는 간단한 방법을 제공합니다.
몇 가지 코드 예제와 출력을 살펴 보겠습니다.
https://datascienceutils.readthedocs.io/en/latest/의 모든 코드 예제와 함께 전체 문서를 찾을 수 있습니다.
문서에서는 더 많은 방법과 추가 예제를 찾을 수 있습니다.
패키지의 API는 Scikit-Learn API 및 Matplotlib API와 함께 작동하도록 만들어졌습니다. 이 패키지의 기능은 다음과 같습니다.
분류의 혼란 매트릭스, 오 탐지율, 오 탐지 속도, 오 탐지율, 정확도 및 F1 점수를 계산하고 표시합니다.
from ds_utils . metrics import plot_confusion_matrix
plot_confusion_matrix ( y_test , y_pred , [ 0 , 1 , 2 ])열차 및 테스트 세트를 받고 점점 더 많은 훈련 된 인스턴스로 주어진 메트릭 변경을 표시합니다.
from ds_utils . metrics import plot_metric_growth_per_labeled_instances
from sklearn . tree import DecisionTreeClassifier
from sklearn . ensemble import RandomForestClassifier
plot_metric_growth_per_labeled_instances (
x_train , y_train , x_test , y_test ,
{
"DecisionTreeClassifier" : DecisionTreeClassifier ( random_state = 0 ),
"RandomForestClassifier" : RandomForestClassifier ( random_state = 0 , n_estimators = 5 )
}
)테스트 진정한 레이블 및 분류기 확률 예측을 수신하고 결과를 나누고 분류하며 최종적으로 결과와 함께 스택 막대 차트를 표시합니다. 원본 코드
from ds_utils . metrics import visualize_accuracy_grouped_by_probability
visualize_accuracy_grouped_by_probability (
test [ "target" ],
1 ,
classifier . predict_proba ( test [ selected_features ]),
display_breakdown = False
)고장없이 :
고장 :
백엔드로 플롯을 사용하여 여러 분류기에 대한 임계 값 주석이있는 ROC 곡선을 플롯하십시오.
from ds_utils . metrics import plot_roc_curve_with_thresholds_annotations
classifiers_names_and_scores_dict = {
"Decision Tree" : tree_clf . predict_proba ( X_test )[:, 1 ],
"Random Forest" : rf_clf . predict_proba ( X_test )[:, 1 ],
"XGBoost" : xgb_clf . predict_proba ( X_test )[:, 1 ]
}
fig = plot_roc_curve_with_thresholds_annotations (
y_true ,
classifiers_names_and_scores_dict ,
positive_label = 1
)
fig . show ()백엔드로 플롯을 사용하여 여러 분류기에 대한 임계 값 주석이있는 정밀 기록 곡선을 플롯하십시오.
from ds_utils . metrics import plot_precision_recall_curve_with_thresholds_annotations
classifiers_names_and_scores_dict = {
"Decision Tree" : tree_clf . predict_proba ( X_test )[:, 1 ],
"Random Forest" : rf_clf . predict_proba ( X_test )[:, 1 ],
"XGBoost" : xgb_clf . predict_proba ( X_test )[:, 1 ]
}
fig = plot_precision_recall_curve_with_thresholds_annotations (
y_true ,
classifiers_names_and_scores_dict ,
positive_label = 1
)
fig . show ()기능을 수신하고 그래프에서 해당 값을 시각화합니다.
from ds_utils . preprocess import visualize_feature
visualize_feature ( X_train [ "feature" ])| 기능 유형 | 구성 |
|---|---|
| 뜨다 | |
| 정수 | |
| DateTime | |
| 카테고리 / 객체 | |
| 부울 |
임계 값 위에서 상관 관계가있는 기능을 계산하고 대상 기능과의 상관 관계 및 상관 관계가있는 데이터 프레임을 추출합니다.
from ds_utils . preprocess import get_correlated_features
correlations = get_correlated_features ( train , features , target )| 레벨 _0 | 레벨 _1 | level_0_level_1_corr | Level_0_TARGET_CORR | Level_1_TARGET_CORR |
|---|---|---|---|---|
| 소득 _category_low | 소득 _category_medium | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
| Term_ 36 개월 | term_ 60 개월 | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
| 관심 _payments_high | 관심 _payments_low | 1.0 | 0.1182165609358650 | 0.11821656093586504 |
NA/NULL 값을 제외하고 열의 쌍과 상관 관계를 계산하고 열지 도로 시각화합니다. 원본 코드
from ds_utils . preprocess import visualize_correlations
visualize_correlations ( data )상관 관계 행렬의 덴드로 그램을 플로팅하십시오. 이것은 나무를 연결하여 가장 상관되는 변수를 계층 적으로 보여주는 차트로 구성됩니다. 연결이 오른쪽에 가까울수록 기능이 더 많이 상관됩니다. 원본 코드
from ds_utils . preprocess import plot_correlation_dendrogram
plot_correlation_dendrogram ( data )두 가지 기능 사이의 공동 분포를 표시합니다.
from ds_utils . preprocess import plot_features_interaction
plot_features_interaction ( "feature_1" , "feature_2" , data )| 숫자 | 범주 형 | 부울 | DateTime | |
|---|---|---|---|---|
| 숫자 | ||||
| 범주 형 | ||||
| 부울 | ||||
| DateTime |
이 방법은 주어진 필드에서 태그를 추출하여 데이터 프레임에 새 열로 추가됩니다.
다음과 같은 것처럼 보이는 데이터 세트를 고려하십시오.
x_train :
| article_name | article_tags |
|---|---|
| 1 | DS, ML, DL |
| 2 | DS, ML |
x_test :
| article_name | article_tags |
|---|---|
| 3 | DS, ML, PY |
이 코드 사용 :
import pandas as pd
from ds_utils . strings import append_tags_to_frame
x_train = pd . DataFrame ([{ "article_name" : "1" , "article_tags" : "ds,ml,dl" },
{ "article_name" : "2" , "article_tags" : "ds,ml" }])
x_test = pd . DataFrame ([{ "article_name" : "3" , "article_tags" : "ds,ml,py" }])
x_train_with_tags , x_test_with_tags = append_tags_to_frame ( x_train , x_test , "article_tags" , "tag_" )결과는 다음과 같습니다.
x_train_with_tags :
| article_name | tag_ds | tag_ml | tag_dl |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| 2 | 1 | 1 | 0 |
x_test_with_tags :
| article_name | tag_ds | tag_ml | tag_dl |
|---|---|---|---|
| 3 | 1 | 1 | 0 |
이 메소드는 서브 세트에서 흥미롭거나 특이한 용어를 반환합니다. Elasticsearch imgation _text 집계를 기반으로합니다.
import pandas as pd
from ds_utils . strings import extract_significant_terms_from_subset
corpus = [ 'This is the first document.' , 'This document is the second document.' ,
'And this is the third one.' , 'Is this the first document?' ]
data_frame = pd . DataFrame ( corpus , columns = [ "content" ])
# Let's differentiate between the last two documents from the full corpus
subset_data_frame = data_frame [ data_frame . index > 1 ]
terms = extract_significant_terms_from_subset ( data_frame , subset_data_frame ,
"content" ) terms 출력은 다음 표입니다.
| 제삼 | 하나 | 그리고 | 이것 | 그만큼 | ~이다 | 첫 번째 | 문서 | 두번째 |
|---|---|---|---|---|---|---|---|---|
| 1.0 | 1.0 | 1.0 | 0.67 | 0.67 | 0.67 | 0.5 | 0.25 | 0.0 |
클러스터 카디널리티는 클러스터 당 예제 수입니다. 이 방법은 클러스터 당 포인트 수를 막대 차트로 표시합니다.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . cluster import KMeans
from ds_utils . unsupervised import plot_cluster_cardinality
data = pd . read_csv ( path / to / dataset )
estimator = KMeans ( n_clusters = 8 , random_state = 42 )
estimator . fit ( data )
plot_cluster_cardinality ( estimator . labels_ )
plt . show ()클러스터 크기는 모든 예에서 클러스터의 중심까지의 거리의 합입니다. 이 메소드는 클러스터 당 총 포인트-중심 간 거리를 막대 차트로 표시합니다.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . cluster import KMeans
from scipy . spatial . distance import euclidean
from ds_utils . unsupervised import plot_cluster_magnitude
data = pd . read_csv ( path / to / dataset )
estimator = KMeans ( n_clusters = 8 , random_state = 42 )
estimator . fit ( data )
plot_cluster_magnitude ( data , estimator . labels_ , estimator . cluster_centers_ , euclidean )
plt . show ()클러스터 카디널티가 높을수록 클러스터 크기가 높아져 직관적으로 의미가 있습니다. 카디널리티가 다른 클러스터와 관련하여 크기와 관련이 없을 때 클러스터는 변칙적으로 간주됩니다. 이 방법은 카디널리티에 대한 크기를 산란 플롯으로 플로팅하여 변칙적 클러스터를 찾는 데 도움이됩니다.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . cluster import KMeans
from scipy . spatial . distance import euclidean
from ds_utils . unsupervised import plot_magnitude_vs_cardinality
data = pd . read_csv ( path / to / dataset )
estimator = KMeans ( n_clusters = 8 , random_state = 42 )
estimator . fit ( data )
plot_magnitude_vs_cardinality ( data , estimator . labels_ , estimator . cluster_centers_ , euclidean )
plt . show () K- 평균 클러스터링을 사용하려면 미리 클러스터 k 수를 결정해야합니다. 이 메소드는 kmeans 알고리즘을 실행하고 각 반복시 클러스터 번호를 증가시킵니다. 거리의 총 크기 또는 합은 손실 메트릭으로 사용됩니다.
참고 : 현재이 방법은 sklearn.cluster.KMeans 에서만 작동합니다.
import pandas as pd
from matplotlib import pyplot as plt
from scipy . spatial . distance import euclidean
from ds_utils . unsupervised import plot_loss_vs_cluster_number
data = pd . read_csv ( path / to / dataset )
plot_loss_vs_cluster_number ( data , 3 , 20 , euclidean )
plt . show ()이 방법은 막대 차트로서 중요성을 특징으로하며 어떤 기능이 모델의 결정에 가장 큰 영향을 미치는지 시각화하는 데 도움이됩니다.
import pandas as pd
from matplotlib import pyplot as plt
from sklearn . tree import DecisionTreeClassifier
from ds_utils . xai import plot_features_importance
# Load the dataset
data = pd . read_csv ( path / to / dataset )
target = data [ "target" ]
features = data . columns . tolist ()
features . remove ( "target" )
# Train a decision tree classifier
clf = DecisionTreeClassifier ( random_state = 42 )
clf . fit ( data [ features ], target )
# Plot feature importance
plot_features_importance ( features , clf . feature_importances_ )
plt . show ()이 시각화는 모델의 의사 결정 프로세스에서 가장 영향력있는 기능을 이해하는 데 도움이되며 기능 선택 및 모델 해석에 대한 귀중한 통찰력을 제공합니다.
지금까지 본 것에 대해 흥분합니까? 더 많은 것을 발견 할 수 있습니다! DatascienceUtils의 잠재력을 최대한 활용하려면 각 모듈에 대해 더 깊이 빠져 나옵니다.
메트릭 - 알고리즘 성능 평가 계산 및 시각화를위한 강력한 방법. 모델의 수행 방식에 대한 통찰력을 얻으십시오.
전처리 - 교육을 위해 데이터를 준비하는 필수 데이터 전처리 기술. 더 나은 결과를 위해 모델의 입력을 개선하십시오.
문자열 - 데이터 프레임에서 문자열을 조작하고 처리하는 효율적인 방법. 텍스트 데이터를 쉽게 처리합니다.
감독되지 않은 - 감독되지 않은 모델의 성능을 계산하고 시각화하기위한 도구. 클러스터링 및 치수 감소 결과를 더 잘 이해하십시오.
XAI- 모델 결정을 설명하는 데 도움이되는 방법, AI를보다 해석 가능하고 신뢰할 수있게합니다.
각 모듈은 데이터 과학 워크 플로를 간소화하도록 설계되어 데이터를 전처리하고 모델을 훈련하고 성능을 평가하며 결과를 해석하는 데 필요한 도구를 제공합니다. DatascienceUtils가 프로젝트를 향상시키는 방법을 확인하려면 각 모듈에 대한 자세한 설명서를 확인하십시오!
우리는 당신이 데이터 과학 활용에 기여하는 데 관심이 있다는 것을 기쁘게 생각합니다! 귀하의 기여는 모든 사람 에게이 프로젝트를 개선하는 데 도움이됩니다. 당신이 노련한 개발자이든 방금 시작하든 여기에 당신을위한 장소가 있습니다.
다음에 기여할 영역을 찾으십시오 . 문제 페이지에서 열린 작업에 대한 문제 페이지를 확인하거나 추가하려는 기능을 생각하십시오.
저장소 포크 : 작업 할 프로젝트의 직접 사본을 만드십시오.
지점 만들기 : 새로운 git 지점에서 변경하십시오.
변경 사항 : 개선 또는 수정 사항을 추가하십시오. 감사합니다 :
변경 사항 테스트 : 코드가 예상대로 작동하고 새로운 문제를 도입하지 않도록하십시오.
풀 요청 제출 : 명확한 제목과 변경 사항에 대한 설명이있는 PR을 엽니 다.
우리는 Python Software Foundation Coder of Coder of Coder와 Matplotlib 사용 안내서를 따릅니다. 귀하의 기여 에이 지침을 준수하십시오.
오픈 소스를 처음 사용하거나 도움이 필요한 경우 주저하지 말고 문제 섹션에서 질문을하거나 관리자에게 연락하십시오. 우리는 도와 드리기 위해 왔습니다!
기여는 너무 작지 않습니다. 문서에서 오타를 고정하든 주요 기능을 추가하든 모든 기여는 가치가 있고 감사합니다.
모든 사람에게 데이터 과학 활용을 개선하도록 도와 주셔서 감사합니다!
패키지를 설치하는 몇 가지 방법은 다음과 같습니다.
데이터 과학기구와 그 종속성을 설치하는 가장 간단한 방법은 Python이 선호하는 패키지 설치 프로그램 인 PIP를 사용하는 PYPI입니다.
pip install data-science-utils데이터 과학을 최신 버전으로 업그레이드하려면 다음을 사용합니다.
pip install -U data-science-utils소스에서 설치하는 것을 선호하는 경우 저장소를 복제하고 설치할 수 있습니다.
git clone https://github.com/idanmoradarthas/DataScienceUtils.git
cd DataScienceUtils
pip install .또는 PIP를 사용하여 GitHub에서 직접 설치할 수 있습니다.
pip install git+https://github.com/idanmoradarthas/DataScienceUtils.gitAnaconda를 사용하는 경우 Conda를 사용하여 설치할 수 있습니다.
conda install idanmorad::data-science-utils데이터 과학 Utils에는 Numpy, Pandas, Matplotlib, Plotly 및 Scikit-Learn을 포함한 몇 가지 의존성이 있습니다. 위의 메소드를 사용하여 패키지를 설치하면 자동으로 설치됩니다.
Data Science Utils는 추가 방법과 개선으로 새로운 릴리스를 일상적으로 게시하는 활발한 프로젝트입니다. 최신 기능 및 버그 수정에 액세스하기위한 업데이트를 정기적으로 확인하는 것이 좋습니다.
설치 중에 문제가 발생하면 GitHub 문제 페이지를 확인하거나 도움을 요청하십시오.