Untitled
unknown
plain_text
2 years ago
3.3 kB
7
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