Merge pull request 'lipatov_ilya_lab_1' (#45) from lipatov_ilya_lab_1 into main
Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/45
This commit is contained in:
commit
b26c54a7e4
35
lipatov_ilya_lab_1/README.md
Normal file
35
lipatov_ilya_lab_1/README.md
Normal file
@ -0,0 +1,35 @@
|
||||
## Лабораторная работа №1
|
||||
|
||||
### Работа с типовыми наборами данных и различными моделями
|
||||
|
||||
## Выполнил студент группы ПИбд-41 Липатов Илья
|
||||
|
||||
### Как запустить лабораторную работу:
|
||||
|
||||
* установить python, numpy, matplotlib, sklearn
|
||||
* запустить проект (стартовая точка класс lab1)
|
||||
|
||||
### Какие технологии использовались:
|
||||
|
||||
* Язык программирования `Python`, библиотеки numpy, matplotlib, sklearn
|
||||
* Среда разработки `PyCharm`
|
||||
|
||||
### Что делает лабораторная работа:
|
||||
|
||||
* Генерирует набор данных типа с помощью make_circles(noise=0.2, factor=0.5, random_state=4)
|
||||
* Сравнивает три типа моделей: линейную, полиномиальную (степень 4) и персептрон
|
||||
|
||||
### Примеры работы:
|
||||
|
||||
#### Результаты:
|
||||
* Линейная регрессия, оценка качества: 0.0494206358498015
|
||||
* Полиноминальная регрессия, оценка качества: 0.4480860719638978
|
||||
* Персептрон, оценка качества: 0.52
|
||||
|
||||
#### Самый лучший результат показал персептрон - 0.52
|
||||
|
||||
#### График линейной, полиномиальной, персептрон:
|
||||
|
||||
![Lineal](lineal.png)
|
||||
![Polynomial](polynomial.png)
|
||||
![Perceptron](perceptron.png)
|
52
lipatov_ilya_lab_1/lab1.py
Normal file
52
lipatov_ilya_lab_1/lab1.py
Normal file
@ -0,0 +1,52 @@
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.preprocessing import PolynomialFeatures
|
||||
from sklearn.linear_model import LinearRegression
|
||||
from sklearn.preprocessing import StandardScaler
|
||||
from sklearn.linear_model import Perceptron
|
||||
from sklearn.datasets import make_circles
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
|
||||
def polynomial(x_train, y_train):
|
||||
model = PolynomialFeatures(degree=4).fit(x_train, y_train)
|
||||
x_poly = model.fit_transform(x_train)
|
||||
lin = LinearRegression()
|
||||
lin.fit(x_poly, y_train)
|
||||
plt.scatter(x_train, y_train, color='green')
|
||||
plt.plot(x_train, lin.predict(x_poly), color='red')
|
||||
plt.show()
|
||||
print('Полиноминальная регрессия')
|
||||
print('Оценка качества:', lin.score(x_poly, y_train))
|
||||
|
||||
|
||||
def lineal(x, y, x_train, y_train):
|
||||
model = LinearRegression().fit(x_train, y_train)
|
||||
plt.scatter(x, y, color='green')
|
||||
plt.plot(x, model.predict(x), color='red')
|
||||
plt.show()
|
||||
print('Линейная регрессия')
|
||||
print('Оценка качества:', model.score(x_train, y_train))
|
||||
|
||||
|
||||
def perceptron(x_test, x_train, y_train):
|
||||
sc = StandardScaler()
|
||||
sc.fit(x_train)
|
||||
x_train_std = sc.transform(x_train)
|
||||
x_test_std = sc.transform(x_test)
|
||||
model = Perceptron(eta0=0.1, random_state=1).fit(x_train_std, y_train)
|
||||
plt.scatter(x_train, y_train, color='green')
|
||||
plt.plot(x_test_std, model.predict(x_test_std), color='red')
|
||||
plt.show()
|
||||
print('Персептрон')
|
||||
print('Оценка качества:', model.score(x_train, y_train))
|
||||
|
||||
|
||||
x, y = make_circles(noise=0.2, factor=0.5, random_state=10)
|
||||
x = x[:, np.newaxis, 1]
|
||||
x = StandardScaler().fit_transform(x)
|
||||
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=.5, random_state=42)
|
||||
|
||||
lineal(x_test, y_test, x_train, y_train)
|
||||
polynomial(x_train, y_train)
|
||||
perceptron(x_test, x_train, y_train)
|
BIN
lipatov_ilya_lab_1/lineal.png
Normal file
BIN
lipatov_ilya_lab_1/lineal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
lipatov_ilya_lab_1/perceptron.png
Normal file
BIN
lipatov_ilya_lab_1/perceptron.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
BIN
lipatov_ilya_lab_1/polynomial.png
Normal file
BIN
lipatov_ilya_lab_1/polynomial.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
Loading…
Reference in New Issue
Block a user