Translation not up to date
Za pomocą assetframe-lib
można tworzyć, wyświetlać i edytować informacje o grupach składników dla zasobów danych w notebookach Watson Studio .
Grupy składników definiują dodatkowe metadane dla kolumn zasobu danych, które mogą być używane w dalszych zadaniach Machine Learning . Więcej informacji na temat korzystania z grup składników w interfejsie użytkownika zawiera sekcja Zarządzanie grupami składników .
Konfigurowanie bibliotek produktu assetframe-lib
i ibm-watson-studio-lib
Biblioteka assetframe-lib
dla Python jest wstępnie zainstalowana i może być importowana bezpośrednio w notatniku w programie Watson Studio. Jednak jest ona oparta na bibliotece ibm-watson-studio-lib
. W poniższych krokach opisano, w jaki sposób skonfigurować obie biblioteki.
Aby wstawić znacznik projektu do notatnika:
Kliknij ikonę Więcej na pasku narzędzi notatnika, a następnie kliknij opcję Wstaw znacznik projektu.
Jeśli znacznik projektu istnieje, do notatnika zostanie dodana komórka z następującymi informacjami:
from ibm_watson_studio_lib import access_project_or_space wslib = access_project_or_space({"token":"<ProjectToken>"})
<ProjectToken>
jest wartością znacznika projektu.Jeśli w komunikacie powiedziano, że nie istnieje znacznik projektu, należy kliknąć odsyłacz w komunikacie, który ma zostać przekierowany do strony Kontrola dostępu projektu, w której można utworzyć znacznik projektu. Aby utworzyć znacznik projektu, należy kwalifikować się do niego.
Aby utworzyć znacznik projektu:
- Na karcie Zarządzanie wybierz stronę Kontrola dostępu , a następnie kliknij opcję Nowy znacznik dostępu w obszarze Znaczniki dostępu.
- Wprowadź nazwę, wybierz rolę Edytujący dla projektu, a następnie utwórz znacznik.
- Wróć do notatnika, kliknij ikonę Więcej na pasku narzędzi notatnika, a następnie kliknij opcję Wstaw znacznik projektu.
Zaimportuj produkt
assetframe-lib
i zainicjuj go przy użyciu utworzonej instancji produktuibm-watson-studio-lib
.from assetframe_lib import AssetFrame AssetFrame._wslib = wslib
Funkcje i metody biblioteki assetframe-lib
Biblioteka assetframe-lib prezentuje zestaw funkcji i metod, które są pogrupowane w następujący sposób:
Tworzenie ramki zasobu
Ramka zasobu służy do definiowania metadanych grupy składników dla istniejącego zasobu danych lub w przypadku pandas DataFrame. Dla każdego zasobu można utworzyć dokładnie jedną grupę składników. W przypadku utworzenia ramki zasobu na pandas DataFramemożna zapisać pandas DataFrame wraz z metadanymi grupy składników jako zasób danych w projekcie.
W celu utworzenia ramki zasobu można użyć jednej z następujących funkcji:
AssetFrame.from_data_asset(asset_name, create_default_features=False)
Ta funkcja tworzy nową ramkę zasobu, która opakowuje istniejący zasób danych w projekcie. Jeśli istnieje już grupa składników dla tego zasobu aplikacyjnego, na przykład utworzona w interfejsie użytkownika, jest ona odczytywaana z metadanych zasobu aplikacyjnego.
Parametry:
asset_name
: (wymagane) Nazwa zasobu danych w projekcie.create_default_features
: (Opcjonalnie) Tworzy składniki dla wszystkich kolumn w zasobie danych.
AssetFrame.from_pandas(name, dataframe, create_default_features=False)
Ta funkcja tworzy nową ramkę zasobu opakowują pandas DataFrame.
Parametry:
name
: (wymagane) Nazwa ramki zasobu. Ta nazwa będzie używana jako nazwa zasobu danych, jeśli w projekcie zostanie zapisana grupa składników w projekcie w późniejszym kroku.dataframe
: (wymagane) Pandas DataFrame , który ma być przechowywany razem z informacjami o grupach składników.create_default_features
: (Opcjonalnie) Utwórz składniki dla wszystkich kolumn w ramce danych.Przykład tworzenia ramki zasobu na podstawie pandas DataFrame:
# Create an asset frame from a pandas DataFrame and set # the name of the asset frame. af = AssetFrame.from_pandas(dataframe=credit_risk_df, name="Credit Risk Training Data")
Tworzenie, pobieranie i usuwanie składników
Składnik definiuje metadane, które mogą być używane przez kolejne zadania Machine Learning . Dla każdej kolumny w zestawie danych można utworzyć jedną opcję.
Aby utworzyć, pobrać lub usunąć kolumny z szafy zasobu, można użyć jednej z następujących funkcji:
add_feature(column_name, role='Input')
Ta funkcja dodaje nową funkcję do ramki zasobu z daną rolą.
Parametry:
column_name
: (wymagane) Nazwa kolumny, dla której ma zostać utworzona funkcja.role
: (opcjonalnie) Rola składnika. Wartością domyślną jest Dane wejściowe.Poprawne role to:
- Dane wejściowe: dane wejściowe dla modelu uczenia maszynowego
- Cel: cel modelu predykcji
- Identyfikator: identyfikator wiersza w zestawie danych.
- Dane wejściowe: dane wejściowe dla modelu uczenia maszynowego
create_default_features()
Ta funkcja tworzy składniki dla wszystkich kolumn w zestawie danych. Role składników zostaną domyślnie wprowadzone w polu Dane wejściowe.
get_features()
Ta funkcja pobiera wszystkie funkcje ramki zasobu.
get_feature(column_name)
Ta funkcja pobiera funkcję dla podanej nazwy kolumny.
Parametry:
column_name
: (wymagane) Nazwa łańcucha kolumny, dla której ma zostać utworzona funkcja.
get_features_by_role(role)
Ta funkcja pobiera wszystkie funkcje ramki danych z daną rolą.
Parametry:
role
: (wymagane) Rola, jaką muszą mieć składniki. Może to być wartość Dane wejściowe, Cel lub Identyfikator.
remove_feature(feature_or_column_name)
Ta funkcja usuwa składnik z ramki zasobu.
Parametry:
feature_or_column_name
: (wymagane) Funkcja lub nazwa kolumny, dla której ma zostać usunięta funkcja.
Przykład pokazujący tworzenie funkcji dla wszystkich kolumn w zestawie danych i pobieranie jednej z tych kolumn w celu uzyskania dalszych specyfikacji:
# Create features for all columns in the data set and retrieve a column
# for further specifications.
af.create_default_features()
risk_feat = af.get_feature('Risk')
Określanie atrybutów opcji
Składniki określają dodatkowe metadane w kolumnach, które mogą być używane w kolejnych zadaniach Machine Learning .
Aby pobrać kolumnę, dla której zdefiniowano składnik, można użyć następującej funkcji:
get_column_name()
Ta funkcja pobiera nazwę kolumny, dla której została zdefiniowana funkcja.
Rola
Rola określa zamierzone użycie funkcji w zadaniu Machine Learning .
Poprawne role to:
Input
: składnik może być używany jako dane wejściowe dla modelu Machine Learning .Identifier
: Funkcja jednoznacznie identyfikuje wiersz w zestawie danych.Target
: Funkcja może być używana jako zmienna przewidywana w algorytmie predykcji.
W tym momencie funkcja musi mieć dokładnie jedną rolę.
Aby pracować z rolą, można użyć następujących metod:
set_roles(roles)
Ta metoda ustawia role funkcji.
Parametry:
roles
: (wymagane) Role, które mają być używane. Albo jako pojedynczy łańcuch, albo tablica łańcuchów.
get_roles()
Ta metoda zwraca wszystkie role składnika.
Przykład pokazujący uzyskanie funkcji i ustawienie roli:
# Set the role of the feature 'Risk' to 'Target' to use it as a target in a prediction model.
risk_feat = af.get_feature('Risk')
risk_feat.set_roles('Target')
Opis
Opcjonalny opis składnika. Wartością domyślną jest None
.
Do pracy z opisem można użyć następujących metod.
set_description(description)
Ta metoda służy do ustawiania opisu funkcji.
Parametry:
description
: (wymagane) Łańcuch lubNone
, aby usunąć opis.
get_description()
Ta metoda zwraca opis składnika.
Informacje o uczciwości dla pozytywnych i niesprzyjających wyników
Dla funkcji z rolą Target
można określić korzystne i niekorzystne etykiety dla opcji.
Można użyć następujących metod, aby ustawić i pobrać korzystne lub niesprzyjające etykiety.
Pozytywne wyniki
Aby ustawić i uzyskać korzystne etykiety, można użyć następujących metod:
set_favorable_labels(labels)
Ta metoda służy do ustawiania korzystnych etykiet dla składnika.
Parametry:
labels
: (wymagany) Łańcuch lub lista łańcuchów z korzystnymi etykietami.
get_favorable_labels()
Ta metoda zwraca korzystne etykiety składnika.
Niesprzyjające wyniki
W celu ustawienia i uzyskania nieprzyjaznych etykiet można użyć następujących metod:
set_unfavorable_labels(labels)
Ta metoda ustawia niekorzystne etykiety dla składnika.
Parametry:
labels
: (wymagany) Łańcuch lub lista łańcuchów z niesprzyjającymi etykietami.
get_unfavorable_labels()
Ta metoda pobiera niesprzyjające etykiety funkcji.
Przykład pokazujący ustawienie korzystnych i niesprzyjających etykiet:
# Set favorable and unfavorable labels for the target feature 'Risk'.
risk_feat = af.get_feature('Risk')
risk_feat.set_favorable_labels("No Risk")
risk_feat.set_unfavorable_labels("Risk")
Informacje o uczciwości dla monitorowanych i grup referencyjnych
Niektóre kolumny w danych mogą być skłonne do nieuczciwych bias. W zadaniach Machine Learning można określić grupy monitorowane i odwołania do dalszego wykorzystania. Można je określić dla składników o roli Input
.
Można podać pojedyncze wartości lub zakresy wartości liczbowych jako łańcuch zawierający nawiasy kwadratowe, a także wartość początkową i końcową, na przykład [0,15]
.
Aby ustawić i pobrać grupy monitorowane i odniesienia, można użyć następujących metod:
set_monitored_groups(groups)
Ta metoda ustawia monitorowane grupy dla składnika.
Parametry:
groups
: (wymagany) Łańcuch lub lista łańcuchów z monitorowanymi grupami.
get_monitored_groups()
Ta metoda pobiera monitorowane grupy funkcji.
set_reference_groups(groups)
Ta metoda ustawia grupy odwołań dla składnika.
Parametry:
groups
: (wymagany) Łańcuch lub lista łańcuchów z grupami odwołań.
get_reference_groups()
Ta metoda pobiera grupy odwołań składnika.
Przykład wyświetlający monitorowane grupy i grupy referencyjne:
# Set monitored and reference groups for the features 'Sex' and 'Age'.
sex_feat = af.get_feature("Sex")
sex_feat.set_reference_groups("male")
sex_feat.set_monitored_groups("female")
age_feat = af.get_feature("Age")
age_feat.set_monitored_groups("[0,25]")
age_feat.set_reference_groups("[26,80]")
Opisy wartości
Opisów wartości można używać do określania opisów wartości kolumn w danych.
Aby ustawić i pobrać opisy, można użyć następujących metod:
set_value_descriptions(value_descriptions)
Ta metoda ustawia opisy wartości dla składnika.
Parametry:
value_descriptions
: (wymagany) słownik pytonowy lub lista słowników w następującym formacie:{'value': '<value>', 'description': '<description>'}
get_value_descriptions()
Ta metoda zwraca wszystkie opisy wartości składnika.
get_value_description(value)
Ta metoda zwraca opis wartości dla danej wartości.
Parametry:
value
: (wymagane) Wartość, dla której ma zostać pobrany opis wartości.
add_value_description(value, description)
Ta metoda dodaje opis wartości wraz z podaną wartością i opisem do listy opisów wartości dla składnika.
Parametry:
value
: (wymagane) Wartość łańcuchowa opisu wartości.description
: (wymagany) Opis łańcucha opisu wartości.
remove_value_description(value)
Ta metoda usuwa opis wartości z daną wartością z listy opisów wartości składnika.
Parametry:
value
: (wymagane) Wartość opisu wartości, która ma zostać usunięta.
Przykład pokazujący sposób ustawiania opisów wartości:
plan_feat = af.get_feature("InstallmentPlans")
val_descriptions = [
{'value': 'stores',
'description': 'customer has additional business installment plan'},
{'value': 'bank',
'description': 'customer has additional personal installment plan'},
{'value': 'none',
'description': 'customer has no additional installment plan'}
]
plan_feat.set_value_descriptions(val_descriptions)
Przepis
Istnieje możliwość użycia przepisu w celu opisania sposobu tworzenia składnika, na przykład za pomocą formuły lub fragmentu kodu. Wartością domyślną jest None
.
Do pracy z receptą można używać następujących metod.
set_recipe(recipe)
Ta metoda ustawia przepis opcji.
Parametry:
recipe
: (wymagane) Łańcuch lub Brak, aby usunąć przepis.
get_recipe()
Ta metoda zwraca przepis funkcji.
Wyświetlanie podglądu danych
Użytkownik może wyświetlić podgląd danych zasobu danych lub pandas DataFrame z dodatkowymi informacjami na temat funkcji, takich jak informacje o rzetelności.
Dane są wyświetlane w postaci pandas DataFrame z opcjonalnymi informacjami nagłówkami dotyczącymi ról funkcji, opisów lub przepisów. Informacje o rzetelności są wyświetlane z kolorowaniem dla etykiet pozytywnych lub niesprzyjających, monitorowanych i grup referencyjnych.
W tym momencie można pobrać do 100 wierszy przykładowych danych dla zasobu danych.
Aby wyświetlić podgląd danych, użyj następującej funkcji:
head(num_rows=5, display_options=['role'])
Ta funkcja zwraca pierwsze wiersze
num_rows
zestawu danych w obszarze DataFrame.Parametry:
num_rows
: (opcjonalnie) Liczba wierszy do pobrania.display_options
: (Opcjonalnie) Nagłówek kolumny może wyświetlić dodatkowe informacje dla kolumny w zestawie danych.Opcje te umożliwiają wyświetlanie atrybutów funkcji:
role
: Służy do wyświetlania roli składnika dla tej kolumny.description
: służy do wyświetlania opisu funkcji dla tej kolumny.recipe
: służy do wyświetlania przepisu składnika dla tej kolumny.
Uzyskiwanie informacji o rzetelności
Użytkownik może pobrać informacje o rzetelności wszystkich funkcji w ramce zasobu aplikacyjnego jako słownik Python . Obejmuje to wszystkie funkcje zawierające grupy monitorowane lub grupy odwołań (lub obie) jako atrybuty chronione, a także opcję docelową z etykietami korzystnymi lub niesprzyjającymi.
Jeśli typ danych kolumny z informacjami o rzetelności jest liczbowy, wartości etykiet i grup są przekształcane w wartości liczbowe, jeśli to możliwe.
Informacje o uczciwości mogą być używane bezpośrednio w AutoAI lub AI Fairness 360.
W celu pobrania informacji o godziwości ramki zasobu można użyć następującej funkcji:
get_fairness_info(target=None)
Ta funkcja zwraca słownik Python z przychylnymi i niesprzyjającymi etykietami kolumny docelowej i chronionych atrybutów z monitorowanymi i grupami referencyjnymi.
Parametry:
cel: (opcjonalnie) Opcja docelowa. Jeśli istnieje tylko jedna funkcja z rolą
Target
, zostanie ona użyta automatycznie.Przykład pokazujący sposób pobierania informacji o rzetelności:
af.get_fairness_info()
Dane wyjściowe przedstawiające informacje o fairness:
{ 'favorable_labels': ['No Risk'], 'unfavorable_labels': ['Risk'], 'protected_attributes': [ {'feature': 'Sex', 'monitored_group': ['female'], 'reference_group': ['male']}, {'feature': 'Age', 'monitored_group': [[0.0, 25]], 'reference_group': [[26, 80]] }] }
Zapisywanie informacji o grupie składników
Po pełnym określeniu lub zaktualizowaniu składników można zapisać całą definicję grupy składników jako metadane dla zasobu danych.
Jeśli ramka zasobu została utworzona na podstawie pandas DataFrame, w pamięci masowej projektu zostanie utworzony nowy zasób danych wraz z nazwą ramki zasobu.
W celu zapisania informacji o grupie składników można użyć następującej metody:
to_data_asset(overwrite_data=False)
Ta metoda umożliwia zapisanie informacji o grupie składników w metadanych zasobów aplikacyjnych. Tworzy on nowy zasób danych, jeśli ramka zasobu została utworzona z poziomu pandas DataFrame.
Parametry:
overwrite_data
: (opcjonalnie) nadpisuje również zawartość zasobu aplikacyjnego danymi z ramki zasobu. Wartością domyślną jestFalse
.
Więcej inform.
Zapoznaj się z przykładowym projektem Tworzenie i używanie danych składnicy składników w przykładach.
Temat nadrzędny: Ładowanie i uzyskiwanie dostępu do danych w notatniku