Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Системы искусственного интеллекта в бизнес-аналитике

Покупка
Новинка
Артикул: 833845.01.99
Доступ онлайн
300 ₽
В корзину
Представлены краткие теоретические сведения, практические рекомендации и методические указания к выполнению лабораторных работ как сквозного проекта по дисциплине «Системы искусственного интеллекта в бизнес-аналитике» для магистрантов направления подготовки 09.04.03 «Искусственный интеллект в бизнес-аналитике».
Еклашева, О. В. Системы искусственного интеллекта в бизнес-аналитике : практикум / О. В. Еклашева. - Йошкар-Ола : Поволжский государственный технологический университет, 2023. - 72 с. - ISBN 978-5-8158-2354-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2155612 (дата обращения: 14.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
О. В. Еклашева

СИСТЕМЫ ИСКУССТВЕННОГО 

ИНТЕЛЛЕКТА 

В БИЗНЕС-АНАЛИТИКЕ

Практикум 

Йошкар-Ола

ПГТУ
2023
УДК 004.8:334.7
ББК 38.813:65.29

E 45

Рецензенты:
А. В. Бородин, канд. экон. наук, заведующий кафедрой информатики 
и системного программирования ПГТУ;
А. В. Швецов, д-р экон. наук, профессор кафедры информационных систем 
в экономике ПГТУ

Печатается по решению 

редакционно-издательского совета ПГТУ

Еклашева, О. В.

Е 45   
Системы искусственного интеллекта в бизнес-аналитике: прак-

тикум / О. В. Еклашева. – Йошкар-Ола: Поволжский государственный 
технологический университет. 2023. – 72 с.
ISBN 978-5-8158-2354-9

Представлены краткие теоретические сведения, практические реко-

мендации и методические указания к выполнению лабораторных работ как 
сквозного проекта по дисциплине «Системы искусственного интеллекта в 
бизнес-аналитике» для магистрантов направления подготовки 09.04.03 
«Искусственный интеллект в бизнес-аналитике».

УДК 004.8:334.7
ББК 38.813:65.29

ISBN 978-5-8158-2354-9
© Еклашева О. В., 2023
© Поволжский государственный
технологический университет, 2023
ВВЕДЕНИЕ

Тема использования искусственного интеллекта в различных 

сферах (и в бизнес-аналитике в том числе) в настоящее время является 
очень актуальной, что делает актуальным и издание настоящего 
практикума по дисциплине «Системы искусственного интеллекта 
в бизнес-аналитике».

Предлагаемое вниманию читателей учебное издание призвано

познакомить их с использованием Python для анализа и визуализации 
больших данных и построением модели линейной регрессии. 

В данном практикуме представлено семь лабораторных работ. 

Студент может выполнить все действия, которые здесь описаны, 
поскольку все датасеты выложены на гугл-диск, к которому есть 
ссылка, и доступ к ним разрешен.

Все куски кода выделены жирным шрифтом, также жирным 

шрифтом обозначены названия функций в тексте.

Все используемые датасеты можно скачать по ссылке 

https://drive.google.com/drive/folders/1NKo9fafw6FwD5rSxtpHZ6jo
cnnha8U3h?usp=sharing.

В работе аналитика большое внимание уделяется подготовке 

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

Данное издание рассчитано на магистрантов первого курса

направления подготовки 09.04.03 «Искусственный интеллект в 
бизнес-аналитике», поэтому здесь рассмотрена только модель регрессии.

Занятие 1. Краткое знакомство с библиотекой Pandas

Pandas — наиболее популярная библиотека для работы с дан-

ными и удобного представления их в табличной форме [1].

Поскольку pandas не встроен в Python по умолчанию, его необ-

ходимо импортировать. Чаще всего pandas импортируют под псевдонимом 
pd:
import pandas as pd

Если библиотека импортирована под псевдонимом, то в даль-

нейшем, обращаясь к методам и классам из этой библиотеки,
необходимо
использовать
заданный
псевдоним:
например,

pd.read_csv() .

Основные объекты Pandas: Series

Series можно рассматривать как одну колонку таблицы, это од-

номерный массив, в котором индексами могут быть не только порядковые 
номера, но и что угодно другое, например, даты, названия 
компаний, идентификаторы участников опроса и т.д.

Создать Series можно с помощью команды pd.Series() (или

pandas.Series()), если библиотека pandas была импортирована без
использования псевдонима.

Попробуем создать Series, содержащий названия первых четы-

рёх месяцев года, передав их в виде списка.
import pandas as pd
data = pd.Series(["Январь", "Февраль", "Март", "Апрель"],
index = ['Первый', "Второй", "Третий", "Четвёртый"])
print(data)

Если не указывать индекс, то он будет создан автоматически и

в нём будут порядковые номера элементов, начиная с нуля.
Доступ осуществляется с использованием .loc или .iloc.

.loc принимает определённые метки из индекса. В него можно

передать как один указатель, так и массив. Например, если нужно
получить элемент с индексом "Первый", следует написать:
print(data.loc["Первый"])
.iloc принимает на вход порядковые номера элементов Series.

В него также можно передавать как одно число, так и массив
чисел. Например, если нужно из Series data, полученного в
предыдущем блоке кода, получить элемент с индексом "Первый", 
необходимо написать:
print(data.iloc[0])

А если нужно получить, например, элементы с индексами "Пер-

вый" и "Третий", то следует передать в метод .iloc() список с номерами 
этих элементов:
print(data.iloc[[0, 2]])

Если в .loc передать название индекса, а в .iloc – номер индекса,

которого нет в данных, то будет вызвана ошибка.

Основные объекты Pandas: DataFrame

Объект DataFrame лучше всего представлять в виде обычной

таблицы. В таблице присутствуют строки и столбцы. Столбцами в
объекте DataFrame выступают объекты Series, строки которых являются 
их непосредственными элементами.

Создать DataFrame проще всего из словаря:

df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
display(df)

Здесь мы создали DataFrame с колонками 'col1' и 'col2' и индек-

сом [0, 1], который был сгенерирован автоматически.

Кроме того, DataFrame можно создать из списка списков.

Также можно указать названия колонок (columns) и индекс (index).
df = pd.DataFrame([ [1,2,3], [2,3,4] ],

columns = ['foo', 'bar', 'baz'],
index = ['foobar', 'foobaz'])

display(df)
Здесь мы вручную указали названия колонок (foo, bar и baz) и

индекс (foobar, foobaz), чтобы задать нужный нам формат таблицы.


Основные объекты Pandas: read_csv

Часто при работе с данными бывает так, что данные уже со-

браны в каком-то виде, например в виде файла с расширением .csv
(comma-separated values). Прочитать этой файл поможет функция
модуля pandas read_csv.

Рассмотрим принцип работы функции на примере набора дан-

ных о футболистах.

Основной код выглядит достаточно просто:

pd.read_csv('Полный_путь_к_файлу/название_файла.csv')

Функция возвращает DataFrame (то есть таблицу), однако за-

тем приобретает ещё много важных параметров, среди которых:
•
sep — разделитель данных, по умолчанию ',';

•
decimal — разделитель числа на целую и дробную часть, по

умолчанию'.';
•
names — список с названиями колонок, не обязательный пара-

метр;
•
skiprows — если файл содержит системную информацию,

можно просто её пропустить. Это необязательный параметр.

Получение информации о датафрейме: head и tail

Часто после чтения данных с помощью read_csv() хочется убе-

диться в правильности чтения или, к примеру, посмотреть, что лежит 
в наборе данных.

Для этого используются методы .head() или .tail(), которые по-

казывают первые или последние пять строк таблицы. Количество
строк можно менять параметром n, передаваемым в функцию.

Посмотрим, как они работают, на примере набора данных о

футболистах:
import pandas as pd
football = pd.read_csv('/Full_path_to_file/data_sf.csv')
display(football.head())
Здесь мы вывели первые пять строк DataFrame.

import pandas as pd
football = pd.read_csv('/Full_path_to_file/data_sf.csv')
display(football.tail(7))

А здесь — последние семь строк.

Получение информации о датафрейме: info

Если хочется получить более детальную информацию о колон-

ках DataFrame, используется метод .info():
import pandas as pd
football = pd.read_csv('/Full_path_to_file/data_sf.csv')
display(football.info())

Получение информации о датафрейме: describe

Метод describe показывает основные статистические характе-

ристики данных по каждому числовому признаку (типы int64 и
float64): число непропущенных значений, среднее, стандартное отклонение, 
диапазон, медиану, 25 % и 75 % квартили.
import pandas as pd
football = pd.read_csv('/Full_path_to_file/data_sf.csv')
football.describe()

Здесь для каждого числового (int64) столбца показано число не-

пустых значений (count), среднее (mean), стандартное отклонение
(std), минимум и максимум (min и max), 25 % и 75 % квартили и
медиана (50 %).

Чтобы посмотреть статистику по нечисловым признакам

(например, по строчным (object) или булевым (bool) данным),
нужно явно указать интересующие нас типы в параметре метода
describe include:
football.describe(include = ['object'])

Здесь для каждой колонки с типом object (строчные данные) вы-

водится количество непустых строк, уникальных значений, самое
частое значение (top) и частота этого значения (freq).

В обрезанном виде можно написать:

with pd.option_context('display.max_rows', None, 'dis-
play.max_columns', None):

display(football.describe())
Индексация и извлечение данных: статистические методы

Для
вычисления
отдельных
статистических
параметров

DataFrame можно использовать не только метод .describe(), но и
отдельные методы для каждого параметра:

Метод
Статистический параметр

.max()
Максимум

.min()
Минимум

.mean()
Среднее значение

.sum()
Сумма

.count()
Количество непустых элементов

.std()
Стандартное отклонение

Если один из этих методов применить ко всему DataFrame, то

в результате его работы будет получен объект типа Series. В случае
применения метода к отдельному столбцу результатом вычислений 
станет число (среднее значение элементов столбца, минимум,
максимум и т.п.).

В каждый метод можно передать некоторые параметры, среди

них:
•
axis — определяет, подсчитывать максимум по строкам (1) или

по столбцам (0) (по умолчанию 0);
•
numeric_only — определяет, вычислять параметры только по

числовым столбцам/строкам или нет (True/False). Если передать
False в методы .mean() или .std(), компилятор выдаст ошибку.

Пример применения:

df = pd.DataFrame([[i,i+1.2,i+2, 'hi'] for i in range(10)],

columns = ['foo', 'bar', 'baz', 'foobar'])

df.mean()
Здесь вычисляется среднее по столбцам (так как не передан па-

раметр axis), причем только по числовым столбцам, так как метод
.mean() не может применяться к столбцам с другим типом.

Доступ к колонке можно получить разными способами:

df['column_name'] или df.column_name. Например, так:
df = pd.DataFrame([[i,i+1.2,i+2, 'hi'] for i in range(10)],

columns = ['foo', 'bar', 'baz', 'foobar'])

df['foo']
df.bar

Колонки в DataFrame представляют собой Series, поэтому к

ним можно применять методы .max(), .std() и другие.
df = pd.DataFrame([[i,i+1.2,i+2, 'hi'] for i in range(10)],

columns = ['foo', 'bar', 'baz', 'foobar'])

df.bar.mean()

Эта операция выведет на экран среднее по колонке 'bar', то

есть 5.7.

Извлекаем данные по условиям

Часто возникает необходимость выбрать данные из DataFrame

по определённому условию. Например, если в уже известном нам
наборе данных о футболистах мы хотим выбрать только тех, у кого
возраст больше 20 лет, используется следующий код:
import pandas as pd
football = pd.read_csv('/Users/maxim/Downloads/data_sf.csv')
football[football.Age > 20]

Синтаксис этой конструкции достаточно прост. Внутри квад-

ратных скобок передается список из True или False, который показывает, 
какие строки DataFrame нужно оставить, а какие убрать.
Этот список генерируется сравнением Series football.Age с 20.
Доступ онлайн
300 ₽
В корзину