4.7 KiB
4.7 KiB
In [ ]:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 1) Ссылка на датасет
dataset_url = "https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data"
# 2) Имена столбцов (по документации UCI)
col_names = [
"Sample_code_number",
"Clump_Thickness",
"Uniformity_of_Cell_Size",
"Uniformity_of_Cell_Shape",
"Marginal_Adhesion",
"Single_Epithelial_Cell_Size",
"Bare_Nuclei",
"Bland_Chromatin",
"Normal_Nucleoli",
"Mitoses",
"Class"
]
# 3) Считываем csv
df = pd.read_csv(
dataset_url,
names=col_names,
na_values=["?"],
header=None
)
# 4) Быстрый осмотр
print(df.head())
print(df.info())
# 5) Удалим строки с пропусками
df.dropna(inplace=True)
# 6) Разделим на признаки (X) и целевую переменную (y)
y = df["Class"]
X = df.drop(["Sample_code_number", "Class"], axis=1)
# 7) Разделим на train и test
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
# 8) Обучим модель (DecisionTree)
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)
# 9) Предсказание и оценка
predictions = clf.predict(X_test)
acc = accuracy_score(y_test, predictions)
print(f"Accuracy: {acc:.3f}")
In [ ]:
In [ ]:
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://opendata.some-region.ru/datasets/interesting-table"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# Предположим, на странице есть <table> с классом "data-table"
table_html = soup.find("table", {"class": "data-table"})
# Преобразуем в DataFrame, если таблица более-менее стандартная
df_list = pd.read_html(str(table_html)) # возвращает список df
df = df_list[0] # берем первую таблицу
df.head()
In [ ]:
import pandas as pd
excel_url = "https://data.gov.ru/files/dataset.xls"
df_excel = pd.read_excel(excel_url, sheet_name="Sheet1")
print(df_excel.columns)
In [ ]:
import pandas as pd
json_url = "https://data.gov.ru/files/dataset.json"
df_json = pd.read_json(json_url, orient="records")
print(df_json.info())