Нейронные сети/Машинное обучение Python

Статус
В этой теме нельзя размещать новые ответы.
  • 80
  • 4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начнем с объяснений.

Что такое нейронные сети или машинное обучение?

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

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

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

Например нам нужно обработать числа полученные от пользователя, а после определить и вывести отрицательно ли оно, положительно или равно 0.



Python:
if a == 0:
print(str(a) + " = нулю")
else if a > 0:
print(str(a) + " положительно")
else if a < 0:
print(str(a) + " отрицательно")

Вместо всех этих условий можно сделать нейросеть.


Python:
from sklearn.neural_network import MLPClassifier #импорт модели для нейросети

model = MPClassifer() #удобная переменная

train_x = [[1], [2], [3], [-2], [-1], [-8], [0]]
train_y = ["положительно", "положительно", "положительно", 'отрицательно', 'отрицательн', 'отрицательно', '= нулю']

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

model.fit(train_x, train_y) #сама тренировка

while True:
print(*model.predict([[int(input())]])) #бесконечный цикл с выводом значения предсказания модели опираясь на данные выше.

В биологии работу нашего мозга или всех остальных сущностей у которых он имеется в наличии, можно объяснить так:

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

Посмотреть вложение 2035
Как вы уже поняли, нейросеть умеет обрабатывать данные.

Многие datasince программисты используют эти технологии для вывода графиков, создания кластеризации, отрисовки таблиц исходя из данных.

В данной теме мы попробуем обойти все сразу ^_^

Сейчас вы увидите код в который я разделю на графики/кластеризацию/таблицы/изображения.
P.S.: Все данные будут использоваться из 1 файла.

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



Python:
#Импорт библиотек которые нам понадобятся.

from sklearn.cluster import KMeans #Библиотека кластеризации.
from pandas import DataFrame #Библиотека для работы с нашим датасетом
import pandas as pd #Библиотека нужная для подключения файла
import matplotlib.pyplot as plt #Библиотека для работы с отрисовкой различных геометрических функций.

dataset = pd.read_excel('dataset1.xlsx') #Через библиотеку pandas подключаем датасет.
#это может быть любой файл, не обязательно эксель.

dataset.info() #Мы можем вывести всю информацию о датасете, от количества колонн в группах, до веса датасета.
'''
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 51 entries, 0 to 50
Data columns (total 5 columns):
Объект 51 non-null object
Координата_X 51 non-null float64
Координата_Y 51 non-null float64
Тип 51 non-null int64
Владелец 51 non-null object
dtypes: float64(2), int64(1), object(2)
memory usage: 2.1+ KB
'''

#С помощью простого вызова переменной, мы можем увидеть сам датасет.

dataset #скриншот №1

#Через команду describe(), мы можем вывести всю описательную хар-ку даты.

dataset.describe()
'''
Координата_X Координата_Y Тип
count 51.000000 51.000000 51.000000
mean 34.003922 14.594118 0.509804
std 15.721272 7.477069 0.504878
min 4.000000 3.000000 0.000000
25% 23.800000 10.000000 0.000000
50% 39.000000 12.500000 1.000000
75% 46.000000 18.000000 1.000000
max 59.000000 41.000000 1.000000
'''
Скрин №1, на самом деле там больше объектов.
UY2bVqG.png


Продолжим. Далее у нас кластеризация.
Python:
#Для дальнейшей работы с датасетами создадим 2 словаря для координат.

Data = {
'x': [],
'y': []
}

Data2 = {
'x': [],
'y': []
}

for i in range(28, 51): #Заполняем первый словарь
x = dataset.loc.Координата_X #Добавляем переменную x, которая равна координате X в таблице.
y = dataset.loc.Координата_Y #Добавляем переменную y, которая равна координате Y в таблице.
Data['x'].append(x) #Заполняем словарь x.
Data['y'].append(y) #Заполняем словарь y.

for i in range(0, 28): #Заполняем второй словарь
x = dataset.loc.Координата_X #Добавляем переменную x, которая равна координате X в таблице.
y = dataset.loc.Координата_Y #Добавляем переменную y, которая равна координате Y в таблице.
Data2['x'].append(x) #Заполняем словарь x.
Data2['y'].append(y) #Заполняем словарь y.

#Создаем 2 переменные для dataframe
df = DataFrame(Data, columns=['x', 'y']) # 1 dataframe
df2 = DataFrame(Data2, columns=['x', 'y']) # 2 dataframe
kmeans = KMeans(n_clusters=17).fit(df) # Параметры цетройдов
kmeans2 = KMeans(n_clusters=20).fit(df2) # Параметры самих кластеров
#команда fit обучает кластеры и центройды по dataframe
centroids = kmeans.cluster_centers_ #Добавляем переменную centroids и берем из библиотеки центры кластеров

#отрисовка кластеров (точек)
plt.scatter(df2['x'], df2['y'], c=kmeans2.labels_.astype(float), s=50, alpha=0.5) #Добавляем точки кластеров
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', s=50, linewidths=0.5) #Добавляем центройды
plt.show() #Отображаем Скрин №2
Скрин №2

kOkVb0L.png


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

Графики

Python:
#Я уже сказал что буду использовать только одни данные, как я пожелел.
#Чтобы создать график, нам нужны данные x и y точек и комманда plot(x, y)
#Но я подумал что будет скучно делать график и замутил гистограмму, все делается очень легко.
plt.hist(df['x']) #Добавляем на дистограмму значения x
plt.show() #Отображаем гистограмму. Скрин №3
Скрин №3
n5kOBmJ.png


На работе с датасетами в данной теме хватит. Перейдем к настоящей нейросети способной разбирать буквы. Тема - Разбор букав Python

Надеюсь вы что-то поняли.
Спасибо за внимание! Всем удачи!

https://i.imgur.com/5EnToaD.png
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу