Найти - Пользователи
Полная версия: Работа над нейросетью.
Начало » Python для новичков » Работа над нейросетью.
1 2
Antonio0608
Доброго времени.
Не сочтите за дерзость. Нужно мнение знатоков. Как в максимально короткие сроки сделать нейросеть, чтобы она анализировала пред идущие итоги. и на основе них, делала прогноз.( искала паттерны, связи, хоть что.) прогноз желательно от 65% и выше.
Дано:
есть массив данных.
выглядит примерно так:
abbcbaabaabaacbbaacb
bbcaabccbabbbccaaabc
ccbbaaccabccbacccaaa
abcbcbcbaabbccaabbba
вот таких строк около 1600 штук и каждый день добавляются минимум одна строка максимум четыре строки.
и я бы хотел знать хотя бы примерно( от 65%) какая будет следующая строка.
в екселе у меня есть таблица. я сам там выискивал паттерны анализировал. и максимальный результат был 80% успешного прогноза.
в среднем 60%.
но это очень много времени забирает. да и много руками приходится делать.
вот и подумал можно же обучить нейросеть искать паттерны связи , закономерности.
и если впростых нейро сетях принцып работы понятен. и опыт кое какой есть.
то как тут быть пока не понятно.
если делать нейросеть на основе временных рядов. то там есть среднее ( квадратичное или любое другое.) то уже на основе него можно сделать.
то тут так не получится.
в екселе пробовал сделать нечто подобное на основе средних значений. но результаты не удовлетворительные в районе 50% и то с натяжкой.
нужно чтобы нейросеть делала возможный прогноз на последующие 20 символов( строку).
Если реально такое сделать то где найти информацию.( кроме прогноза временных рядов я не чего более не находил.)
FishHook
Antonio0608
Я, конечно, не специалист в нейросетях, но сугубо мое личное мнение таково, что 1600 айтемов маловато для обучающей выборки. Надо учитывать, что ну как минимум треть из этих 1600 вам понадобится для контроля обучения. Итого имеем ~1200 обучающих слов. Вариативность же вашей информации чудовищна. Мне кажется, что количество возможных комбинаций решения и количнство нейронов сети не может отличаться (все цифры условные) на, скажем, десять порядков. Для сколько-нибудь вменяемого ответа на ваш вопрос мало-мальски нужно представлять себе природу данных. Было бы полезнее, если бы вы более подробно рассказали, откуда эти слова берутся и каким образом генерируются. Если это, скажем, результаты какого-нибудь алгоритма наподобие генератора UUID - то задача не решаема в принципе. А может получиться и наоборот, что задача решается чисто аналитически.
Antonio0608
вот рабочий вариант нейросети.
вот только народ прошу подскажите как вывести результат работы в процентах(сколько совпадений и сколько ошибок.) для обучения и теста.
import numpy
import matplotlib.pyplot as plt
from pandas import read_csv
import math
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
# convert an array of values into a dataset matrix
def create_dataset(dataset, look_back=1):
dataX, dataY = ,
for i in range(len(dataset)-look_back-1):
a = dataset
dataX.append(a)
dataY.append(dataset)
return numpy.array(dataX), numpy.array(dataY)
# fix random seed for reproducibility
numpy.random.seed(7)
# load the dataset
dataframe = read_csv('test3.csv', usecols=, engine='python')
dataset = dataframe.values
dataset = dataset.astype('float32')
# normalize the dataset
scaler = MinMaxScaler(feature_range0, 1))
dataset = scaler.fit_transform(dataset)
# split into train and test sets
train_size = int(len(dataset) * 0.67)
test_size = len(dataset) - train_size
train, test = dataset, dataset
# reshape into X=t and Y=t+1
look_back = 1
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)
# reshape input to be
trainX = numpy.reshape(trainX, (trainX.shape, 1, trainX.shape))
testX = numpy.reshape(testX, (testX.shape, 1, testX.shape))
# create and fit the LSTM network
model = Sequential()
model.add(LSTM(4, input_shape1, look_back)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)
# make predictions
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)
# invert predictions
trainPredict = scaler.inverse_transform(trainPredict)
trainY = scaler.inverse_transform()
testPredict = scaler.inverse_transform(testPredict)
testY = scaler.inverse_transform()
# calculate root mean squared error
trainScore = math.sqrt(mean_squared_error(trainY, trainPredict))
print('Train Score: %.2f RMSE' % (trainScore))
testScore = math.sqrt(mean_squared_error(testY, testPredict))
print('Test Score: %.2f RMSE' % (testScore))
Antonio0608
А есть форум по нейросетям на питоне русскоязычный.
Все полумертвые какие то.
Нечего интересного не нашел.
FishHook
Это был вопрос или утверждение?
Antonio0608
Это конечно вопрос.
Но отчасти и утвержденние.
Где найти питонистов по нейросетям?
FishHook
Ну давайте объективно посмотрим на вещи. Вот перед нами сайт. Посмотрите - много тут за сегодня вопросов задали? И главное, что это за вопросы? Вопросы совсем новичковские. Ну и кому нужен сайт, да еще и русскоязычный, по такой узкой тематике, как “нейросети на питоне”. Люди по питону то не задают вопросов.
Antonio0608
Так я и спрашиваю, есть ли сообщество где есть специалисты?
Не обязательно чисто по нейросетям.
Айтифай, киберфорум и стаковерфлау, этот питон.су, мертвые нет тут специалистов.
Но гдето они общаются.

FishHook
Antonio0608
Но гдето они общаются.
да нахрена???
AD0DE412
Antonio0608
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB