Вы находитесь на странице: 1из 16

МИНОБРНАУКИ РОССИИ

Федеральное бюджетное образовательное учреждение


высшего образования
«Хакасский государственный университет им. Н.Ф. Катанова»
(ФГБОУ ВО «ХГУ им Н.Ф. Катанова»)
 
Инженерно-технологический институт
Кафедра Программного обеспечения вычислительной техники и
автоматизированных систем

Тема курсовой работы:


Проектирование моделей машинного обучения,
предсказание цен на квартиры с помощью метода линейной
регрессии

Выполнил:
студент курса 1, группы М-11
Бакук А.А

Абакан 2020
Целью данной работы является разработка моделей машинного обучения, предсказание цен на
квартиры с помощью метода линейной регрессии.

Для достижения поставленной цели были определены следующие задачи:

1) проанализировать методы машинного обучения,


2) спроектировать задачу в Excel,
3) выбрать язык программирования и библиотеки для реализации проекта,
4) реализовать программный код
Проектирование задачи в Excel

Задача регрессии: определить стоимость квартиры в зависимости от площади в таблице 1

Площадь (кв.м) Цена (млн.руб) Находим формулу зависимости f(x) и предсказываем


следующие данные на таблице 2
28 3.1
42 3.8 38 ?
45 3.9
62 ?
52 4.4
56 4.5 71 ?

68 5.9 120 ?
70 5.6
84 ?
75 6.4
90 7.3
Таблица 2 -
Таблица 1 - данные
данные
 
В линейной зависимости используется формула
прямой:

Y – цена, X – площадь, a, b –
коэффициенты

Найти коэффициенты с методом наименьших квадратов


Фактическая цена
8

7 f(x) = 0.07 x + 0.81


R² = 0.98

0
20 30 40 50 60 70 80 90 100

Так как с помощью Excel нашли коэффициенты a = 0,0715 и


b = 0.8111.
Найдем неизвестные данные из таблицы 2, предсказанные
данные на рисунке
Выбор языка программирования и библиотеки

Python
Реализация программного кода

Предсказываем следующие данные в


таблице 3

38 ?
62 ?
71 ?
120 ?
84 ?
табл
ица 3
Загружаем и визуализируем данные в Python, результат
на рисунке 4.2

file = 'price.xlsx'

df = pd.read_excel(file)
Расположим данные из таблицы на графике с помощью
библиотеки matplotlib на рисунке 4.2
plt.scatter(df.area, df.price, color = 'red', marker = '^')
plt.xlabel('площадь (кв.м.)')
plt.ylabel('стоимость (млн.руб)')
plt.show()
Тренируем модель методом линейной регрессии
reg = linear_model.LinearRegression() #создали модель
reg.fit(df[['area']],df.price) #обучаем модель на наших
данных
А также посмотрим значения коэффициент a и b в
python на рисунке 4.3
print(reg.coef_)
print(reg.intercept_)
Дальше начертим линию, которая показывает наше предсказание на рисунке 4.4
plt.plot(df.area, reg.predict(df[['area']])) # прямая линия
plt.show()
Предсказываем цен следующих данных на рисунке

#предсказываем
pred = pd.read_excel('prediction_price.xlsx')
p = reg.predict(pred) #предсказываем цены для новых квартир из нового файла по
модели
 
pred['predicted prices'] = p #создаем новую колонку и туда вставим предсказанную
цену
 
# создаем новую excel файл
pred.to_excel('new.xlsx', index = False)
СПАСИБО ЗА ВНИМАНИЕ!