织梦CMS - 轻松建站从此开始!

欧博ABG-会员注册-官网网址

欧博官网Візуалізація набору даних для лінійної регресі

时间:2025-10-11 22:05来源: 作者:admin 点击: 5 次
У цьому уроці покажемо, як почати використовувати нейромережну бібліотеку Keras для моделювання та прогнозування лінійної регресії у вигляді нейронної

У цьому уроці покажемо, як почати використовувати нейромережну бібліотеку Keras для моделювання та прогнозування лінійної регресії у вигляді нейронної мережі. А почнемо ми з візуалізації набору даних для лінійної регресії на Python.

Набори даних для моделей машинного навчання

Для нашого уроку нам необхідно буде певний набір даних, на якому ми будемо моделювати лінійну регресію. Такі набори можна створювати самим. Також існують багато готових наборів даних для різних сфер та різної складності. Ці дані можна знайти на різних базах даних, наприклад на платформі Kaggle, на якій користувачі завантажують свої набори даних та моделі машинного навчання для них.

В нашому уроці ми використаємо набір даних про житло в Бостоні.

Набір даних про житло в Бостоні

Набір даних про житло в Бостоні даних містить інформацію, зібрану Службою перепису населення США щодо житла в Бостоні, Массачусетс в кінці 1970-х років. Набір даних (розмір 48 кбайт) містить 14 унікальних атрибутів (вартість будинку, середня кількість кімнат, рівень злочинності, відстань до центрів зайнятості, концентрація оксидів азоту та ін.), серед яких середня вартість будинку для певного передмістя:

CRIM - рівень злочинності на душу населення;

ZN - частка житлової землі, зонованої для ділянок понад 25000 кв. футів;

INDUS - частка акрів нероздрібного бізнесу на місто;

CHAS -  фіктивна змінна, що визначає межування з рікою Чарльз;

NOX - концентрація оксидів азоту  (частинок на 10 мільйонів);

РМ - середня кількість кімнат на житло;

AGE - частка будинків побудованих до 1940 року;

DIS - приведені відстані до п’яти центрів зайнятості;

RAD - індекс доступності до магістралей;

TAX - податок на повну вартість майна;

PTRATIO - співвідношення учень/вчитель за містами;

B - частка темношкірих у містах;

LSTAT - % населення з низьким статусом;

MEDV - середня вартість будинків.

В наступному уроці ми використаємо цей набір даних як приклад того, як розробити модель, яка дозволить нам передбачити середню ціну будинку на основі одного атрибута в наборі даних (середня кількість кімнат у будинку). В цьому уроці ми покажемо як візуалізувати ці дані з допомогою Python.

Отримання набору даних на Python

Тепер покажемо на Python, як працювати з наборами даних з допомогою бібліотеки Keras та Tensorflow. 

Бібліотека Keras має модуль keras.datasets який має кілька наборів даних (вони векторизовані у форматі Numpy), які можна використовувати для налагодження та тренування моделі машинного навчання. 

Серед цих наборів є набір даних boston_housing, який містить ціни на нерухомість в околицях Бостона. Для використання цього модуля необхідно його імпортувати на початку файлу:

from tensorflow.keras.datasets import boston_housing

Keras має функцію load_data() для завантаження різних наборів даних.

Набори даних, як правило, розділені на навчальні та тестові компоненти та функція load_data() повертає кортеж для кожної компоненти. Кожен кортеж містить двовимірний масив ознак (наприклад, X_train) і вектор, який містить пов’язані цільові значення для кожного зразка в наборі даних (наприклад, y_train): 

(X_train, y_train), (X_test, y_test) = boston_housing.load_data()

Рядки в X_train представляють різні зразки в наборі даних, а стовпці представляють різні характеристики.

В нашому уроці ми не будемо використовувати тестові компоненти (X_test, y_test), однак на практиці дуже важливо використовувати тестові дані, щоб побачити, наскільки добре навчена модель працює на нових даних.

Для нашого набору boston_housing, y_train та y_test є цільові numpy-масиви, що містять ціни на житло в тисячах доларів.

Також функція load_data() може мати такі аргументи:

path - шлях, де локально кешувати набір даних (відносно ~/.keras/datasets).

test_split - частка даних для резервування як тестового набору (за замовчуванням дорівнює 0.2).

seed - випадкове початкове число для перетасування даних перед обчисленням тестового розділення (за замовчуванням дорівнює 113).

Код для отримання певного зразка з набору даних

В наступному коді виведемо перший зразок з набору даних boston_housing, та ціну будинку, яка відповідає цим параметрам в цьому зразку.

# Імпортування бібліотек та модулів import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Input, Activation from tensorflow.keras.datasets import boston_housing from tensorflow.keras import layers import tensorflow as tf import matplotlib.pyplot as plt # Завантаження набору даних про житло в Бостоні (X_train, y_train), (X_test, y_test) = boston_housing.load_data() # Вивід даних print("Розміри масиву вхідних даних: ", X_train.shape) print("\n") print("Вхідні атрибути: ", X_train[0]) print("\n") print("Цільовий вихід (ціна): ", y_train[0])

Щоб запустити цей код в блокноті Yupiter, запустіть Anaconda Prompt і введіть команду jupyter notebook, яка в браузері відкриє Yupiter. Там натискаєте New -> Noteook -> Python 3.8 (tensorflow-gpu). В блокноті вводите цей код. Після його запуску (Shift+Enter) отримаємо такий результат:

boston_housing

Отримання характеристик з набору даних

В наступному прикладі виведемо середню кількість кімнат в наборі даних boston_housing. Для цього в наступному блоці в блокноті Yupiter додамо такий код та запустимо його (Shift+Enter). 

boston_features = { 'Average Number of Rooms':5, } X_train_1d = X_train[:, boston_features['Average Number of Rooms']] print(X_train_1d.shape) X_test_1d = X_test[:, boston_features['Average Number of Rooms']]

Результат виконання: (404,)

Ми отримали число 404, яке дорівнює кількості елементів, що містять значення середньої кількості кімнат. В наборі даних середній кількості кімнат відповідає шоста колонка. Тому ми вказали індекс 5 для словника boston_features.

Щоб вивести усі елементи масиву, необхідно забрати метод shape в аргументі в функції print:

print(X_train_1d)

Результат:

Average Number of Rooms

Виведення характеристик набору даних на графіку

Тепер побудуємо графік середньої ціни житла для окремої характеристики. В нашому випадку характеристикою буде середня кількість кімнат.

plt.figure(figsize=(15, 5)) plt.xlabel('Середня кількість кімнат') plt.ylabel('Середня ціна [$K]') plt.grid("on") plt.scatter(X_train_1d[:], y_train, color='red', alpha=0.5);

Виведення характеристик набору даних на графіку

У наступному уроці покажемо, як використовувати бібліотеку Keras для моделювання та прогнозування лінійної регресії для цього набору даних.

Наступні уроки по Keras та TensorFlow:

Модель лінійної регресії в Keras

Попередні уроки:

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2025-10-14 04:10 最后登录:2025-10-14 04:10
栏目列表
推荐内容