Untitled
unknown
plain_text
a year ago
3.3 kB
4
Indexable
import numpy as np # Wczytanie danych z pliku txt (załóżmy, że dane są w formacie CSV) def load_data(file_path): with open(file_path, 'r') as file: data = [line.strip().split(',') for line in file] return data # a) Wypisanie istniejących w systemie symboli klas decyzyjnych def find_decision_classes(data): decision_classes = set([row[-1] for row in data]) return decision_classes # b) Wielkości klas decyzyjnych def size_of_decision_classes(data): decision_classes_count = {} for row in data: decision_class = row[-1] decision_classes_count[decision_class] = decision_classes_count.get(decision_class, 0) + 1 return decision_classes_count # c) Minimalne i maksymalne wartości poszczególnych atrybutów numerycznych def min_max_values_numeric_attributes(data): numeric_attributes = [[float(val) for val in row[:-1]] for row in data if all(val.replace('.', '').isdigit() for val in row[:-1])] min_values = np.min(numeric_attributes, axis=0) max_values = np.max(numeric_attributes, axis=0) return min_values, max_values # d) Liczba różnych dostępnych wartości dla każdego atrybutu def count_different_values(data): num_attributes = len(data[0]) - 1 unique_values_count = [len(set([row[i] for row in data])) for i in range(num_attributes)] return unique_values_count # e) Lista wszystkich różnych dostępnych wartości dla każdego atrybutu def list_different_values(data): num_attributes = len(data[0]) - 1 unique_values = [list(set([row[i] for row in data])) for i in range(num_attributes)] return unique_values # f) Obliczenie odchylenia standardowego dla poszczególnych atrybutów def compute_standard_deviation(data): numeric_attributes = [[float(val) for val in row[:-1]] for row in data if all(val.replace('.', '').isdigit() for val in row[:-1])] std_deviation_system = np.std(numeric_attributes, axis=0) decision_classes = find_decision_classes(data) std_deviation_classes = {} for decision_class in decision_classes: class_data = [[float(val) for val in row[:-1]] for row in data if row[-1] == decision_class] std_deviation_classes[decision_class] = np.std(class_data, axis=0) return std_deviation_system, std_deviation_classes # Przykładowe użycie funkcji file_path = 'dane.txt' data = load_data(file_path) print("a) Istniejące w systemie symbole klas decyzyjnych:", find_decision_classes(data)) print("b) Wielkości klas decyzyjnych:", size_of_decision_classes(data)) min_values, max_values = min_max_values_numeric_attributes(data) print("c) Minimalne wartości atrybutów numerycznych:", min_values) print(" Maksymalne wartości atrybutów numerycznych:", max_values) print("d) Liczba różnych dostępnych wartości dla każdego atrybutu:", count_different_values(data)) print("e) Lista różnych dostępnych wartości dla każdego atrybutu:", list_different_values(data)) std_dev_system, std_dev_classes = compute_standard_deviation(data) print("f) Odchylenie standardowe dla atrybutów w całym systemie:", std_dev_system) print(" Odchylenie standardowe dla atrybutów w poszczególnych klasach decyzyjnych:", std_dev_classes)
Editor is loading...
Leave a Comment