Predicting Crypto Prices in Python

Поділитися
Вставка
  • Опубліковано 20 лип 2024
  • Today we learn how to predict cryptocurrency prices in Python.
    Get Tabnine for FREE here: bit.ly/3cO76nS
    DISCLAIMER: This is not investing advice. I am not a professional who is qualified in giving any financial advice. This is a video purely about programming using financial data.
    ◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾
    📚 Programming Books & Merch 📚
    💻 The Algorithm Bible Book: www.neuralnine.com/books/
    🐍 The Python Bible Book: www.neuralnine.com/books/
    👕 Programming Merch: www.neuralnine.com/shop
    🌐 Social Media & Contact 🌐
    📱 Website: www.neuralnine.com/
    📷 Instagram: / neuralnine
    🐦 Twitter: / neuralnine
    🤵 LinkedIn: / neuralnine
    📁 GitHub: github.com/NeuralNine
    🎵 Outro Music From: www.bensound.com/
    Timestamps:
    0:00 Intro
    2:33 Disclaimer
    3:33 Loading Financial Data
    8:37 Preparing Data
    13:21 Neural Network Model
    17:34 Testing The Model
    27:03 Price Prediction
    28:48 Predicting Into The Future
    30:55 Outro
  • Наука та технологія

КОМЕНТАРІ • 268

  • @timothymagsino
    @timothymagsino 2 роки тому +5

    Amazing content as always, keep up the great work!

  • @ProGuitarUA
    @ProGuitarUA 3 роки тому +10

    this channel is the real thing!! no bull shit, straight forward, well arranged information. Thank you so much for all the effort!

  • @Covalent5
    @Covalent5 3 роки тому +8

    Please can you show us how to predict a month ahead and plot the graph? That would be nice to see!

  • @TheRetroEngine
    @TheRetroEngine 2 роки тому

    vi user here! Yeah I remember when I used it in '88 or so! thanks for mentioning it - muscle memory is a weird thang. Great video! Subbed. I love the way you type as I do, yet explain so well. Keep going dude.

  • @aadarsh_chaurasia
    @aadarsh_chaurasia 3 роки тому +21

    I don't know know why my fingures automatically tap on your video notification 😂 You are amazing with amazing projects 👍🏼

  • @slawomirgontarek4213
    @slawomirgontarek4213 3 роки тому +7

    You should include some indicators, eg EMA and its prediction for confirmation.

  • @slawomirgontarek4213
    @slawomirgontarek4213 3 роки тому +3

    Thanks. Very interesting lessons, but I think you should follow and add more explanatory comments. This will allow you to analyze the code better over time.

  • @horseradish4046
    @horseradish4046 3 роки тому +2

    you may not need to do a whole indepth theoretical video on neural networks, just explain what you're actually doing with the tensorflow stuff.
    like what the units=50 values do if they're lower or higher, same with the Dropout(0.2), why you need the return_sequences and what does more layers give you, etc.

  • @antondelagarza6675
    @antondelagarza6675 3 роки тому +13

    Can you show us how to feed the predicted data back into the model so the model can make actual predictions, please?

  • @hackercoolio
    @hackercoolio 2 роки тому

    Liked and subscribed.. Thank you and keep them coming

  • @swastikmajumdar6674
    @swastikmajumdar6674 3 роки тому

    Great work! Loved it!

  • @132Revolt
    @132Revolt 2 роки тому +1

    Great video and thank you for explaining the way that you have.
    Did anyone else have to remove "mode." from "model.Dense(units=1)" to get Dense to be recognized?

    • @thomashouweling6450
      @thomashouweling6450 2 роки тому +6

      If you imported keras layers as in the video, just replace that line with model.add(Dense(units=1))

  • @ChangKaiHua300
    @ChangKaiHua300 2 роки тому +39

    Dear Sir and class,
    the range of your x_test should be
    test_start=dt.datetime(2020,1,1)+dt.timedelta(days=-prediction_days)
    test_end=dt.datetime.now()
    I think the model_inputs should have data range:
    (60 days prior to 2020,1,1 to 2020,1,1) plus (2020,1,1 to now)
    ,not (60 days prior to now to now) plus (2020,1,1 to now)
    the mistake will be reflected at 25:30, since the btc has an increasing trend, your predicted price in the beginning should not be way higher than actual. The reason is you use (60 days prior to now) to predict (2020,1,1)
    Please clarify
    Thank you
    Kai-

    • @gbagba81
      @gbagba81 2 роки тому

      could you please write the model_inputs please? I can't figure it out please

    • @dana-pz5wc
      @dana-pz5wc 2 роки тому

      @@gbagba81 To fix the first price, put this:
      total_dataset = pd.concat((data["Close"], test_data["Close"]), axis = 0)

      model_inputs = total_dataset[len(total_dataset) - len(test_data) - prediction_days:].values

      support_array = total_dataset[len(total_dataset) - len(test_data)-prediction_days- len(test_data):len(total_dataset) - len(test_data)- len(test_data)]
      support_array = np.array(support_array)

      model_inputs2= model_inputs[prediction_days:]
      support_array2 = np.concatenate([support_array, model_inputs2])

      model_inputs = support_array2

      model_inputs = model_inputs.reshape(-1, 1)
      model_inputs = scaler.fit_transform(model_inputs)

      x_test = []

    • @gbagba81
      @gbagba81 2 роки тому +1

      @@junwen6020 it's not supposed to make sense. I've seen all courses in UA-cam not a single one explains why lstm, what the hell are the numbers, they just throw random parameters because science!

    • @mirzarameezahmedbaig93
      @mirzarameezahmedbaig93 2 роки тому +1

      @@gbagba81
      # Add This Line
      data_before_test = web.DataReader(f"{crypto_currency}-{against_currency}", "yahoo", (test_start - datetime.timedelta(days=prediction_days)), test_start)
      # Modify the line that you have to this
      total_dataset = pd.concat((data_before_test['Close'], test_data['Close']), axis=0)
      # Anddd you're done!

    • @gbagba81
      @gbagba81 2 роки тому

      @@mirzarameezahmedbaig93 I'll try this today and be right back

  • @dhruvildalwadi9881
    @dhruvildalwadi9881 2 роки тому

    Nice work! Do you have any documentation of this coding like a report or something?

  • @codewithyug1129
    @codewithyug1129 3 роки тому

    Wooo awesome build ^^ When do you suppose you will upload the video for the zoom clone. I was asked for yt channels that I can prefer and your channel is one of all the channels coz you are one of the best coding tutors

  • @CallmeMrRoyal
    @CallmeMrRoyal Рік тому +3

    this does not work : data = web.DataReader(f"{crypto_currency}-{against_currency}", 'yahoo', start, end), says "string indices must be integers"

  • @deanbawdry
    @deanbawdry Рік тому

    extremely helpful and clear. thanks a lot

  • @saladfingers69420
    @saladfingers69420 3 роки тому

    Awesome video bro thanks!

  • @gaspard__frl
    @gaspard__frl 8 місяців тому

    Okay watch it all that’s a very good tutorial thanks for all the work
    I’m just wondering now how can we improve the model like are we going to run it over and over or there is a value we can change so the model can train longer and have a better accuracy?
    And last question, if we are tuning it few times, is the model going to remember the error it may have made before ?

  • @shashwatshah2132
    @shashwatshah2132 3 роки тому +1

    Sir, is there a way to program a speech recognition deep learning model???
    If possible could you please make a guide on this???

  • @rvmishra9881
    @rvmishra9881 3 роки тому

    Smart UA-cam, exposing your video on right time.

  • @MJ-tn8tw
    @MJ-tn8tw 3 роки тому

    Hi man good work your coding is very educational and useful can you just tell me how to fix the error Sequential object has no attribute prediction

  • @juminokahlister1748
    @juminokahlister1748 3 роки тому +3

    Traceback (most recent call last):
    File "c:\Users\10001\Documents\import numpy as np.py", line 69, in
    x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
    IndexError: tuple index out of range

  • @almighysanti3061
    @almighysanti3061 2 роки тому

    Great video Thank you!

  • @tomaszpielecki9287
    @tomaszpielecki9287 Рік тому +2

    Have problem with data = DataReader(f'{crypto}-{against}', 'yahoo', start=start_date, end=end_date) no conected from yahoo

  • @dnas5629
    @dnas5629 Рік тому +1

    Great tutorial, but would like to know what is it actually doing here. Is it looking at historical patterns? How many days is considered a pattern, 60? Also, when you offset the data by 60 days then is the same true when you had the data offset by 1 day? In other words, should the prediction line be shifted 1 day out?

  • @loganbarker5341
    @loganbarker5341 2 роки тому +1

    Can anyone explain the graph a little more, like the difference between what its actually predicting? If I'm predicting off the last 60 days, why does the prediction price follow the chart the whole way? I'm not entirely understanding how it's predicting future prices when there is no extent beyond the actual prices graph.

  • @Covalent5
    @Covalent5 3 роки тому +12

    Can you show us how to feed the prediction data into the model so we actually predict ahead? I mean not just one day. How can we predict the next month? Thanks 🙏

    • @MACHINEBUILDER
      @MACHINEBUILDER 2 роки тому +3

      it's basically impossible to accurately predict the next month's btc price. Bitcoin is such a volatile market- anything can influence it _(like Elon Musk tweeting...)_

  • @aliozmaral2041
    @aliozmaral2041 3 роки тому

    That was realy educative Thank you

  • @anintrovertabroad2065
    @anintrovertabroad2065 3 роки тому

    when I attempt to fit the model im getting " TypeError: 'int' object is not iterablef". I'm guessing this has asomething to do with the input_shpe. I can't seem to figure out why its doing that though.

  • @scottcarnley625
    @scottcarnley625 3 роки тому +1

    GREAT VIDEO!! Learned so much!!!
    Do you have a video on where the code predicts say day 62 on previous 60 days and then day 63 on previous 60 as you mentioned in video?

    • @thomasdowd2183
      @thomasdowd2183 2 роки тому

      He gets into that in the "Predicting into the Future" segment near the end of the video.

    • @mateoruiz1311
      @mateoruiz1311 2 роки тому

      Saw your profile picture and just wanted to say GIG EM! WHOOP!

  • @triggerhappy9358
    @triggerhappy9358 2 роки тому

    Every time I re-train my model and re-predict, I get completely different predictions. They are off by about 1000 each time, does anyone know why this is?

  • @matthewcollins1858
    @matthewcollins1858 3 роки тому +1

    How would you run a string of predictions? Say I want to see what it predicts the price will be every minute for the next 5-10 minutes.

  • @muktapatil4941
    @muktapatil4941 2 роки тому

    Hey, i tried your code. But I am getting a "ValueError: Found array with dim 3. Estimator expected

  • @sayandey1478
    @sayandey1478 7 місяців тому

    @neuralnine any idea how to do the training online/incrementally?

  • @Jxmiecole
    @Jxmiecole 3 роки тому

    Great 👍 as always

  • @kalilveramartinez4617
    @kalilveramartinez4617 3 роки тому +14

    Great tutorial! New subscriber. Now, what if the neurla network could take it´s own predictions compare them with the actual prices in the past, calculte the mistakes and sort of learn from them, and then do that again with the refined results and so on to finally obtain a better prediction? Is that also programable on your script? Do you think that would work?

    • @fabianarevalo2198
      @fabianarevalo2198 2 роки тому +1

      I had the same thought. Have you figure anything about it?

    • @rajaboy2293
      @rajaboy2293 2 роки тому +1

      I am guessing the way to do it is to log the same data on realtime but with prediction for example open, high, low, close, close_pred, and just retrain the model by loading the model using tensorflow and feeding it the features of realtime with making a backup of previous model for falling back in case of overfitting

    • @mourad5242
      @mourad5242 2 роки тому

      yes, this is called transfer learning or incremental learning.

  • @aymancassim8944
    @aymancassim8944 3 роки тому

    I have problem using tabnine in vim like it doesnt activate what should I do?

  • @tamkhong2517
    @tamkhong2517 2 роки тому

    Hi,
    I got an error at the last step. Could you guys explain it for me, please? the code stops at the line
    prediction_prices = model.predict(x_test)
    ValueError: in user code: ### there is a bunch of python files related to Keras I guess
    ValueError: slice index 0 of dimension 0 out of bounds. for '{{node strided_slice_1}} = StridedSlice[Index=DT_INT32, T=DT_FLOAT, begin_mask=0, ellipsis_mask=0, end_mask=0, new_axis_mask=0, shrink_axis_mask=1](transpose, strided_slice_1/stack, strided_slice_1/stack_1, strided_slice_1/stack_2)' with input shapes: [0,?,1], [1], [1], [1] and with computed input tensors: input[1] = , input[2] = , input[3] = .

  • @soundscheck5194
    @soundscheck5194 3 роки тому

    so where to find these data sets ?pip install numpy like that ????, where can i find these?

  • @vinistudypoints5148
    @vinistudypoints5148 4 місяці тому

    What is the meaning of 'Yahoo' in above code can we use another word on this place?

  • @Janjansen10
    @Janjansen10 2 роки тому

    I have the following error message, does someone know how I could solve this?
    ValueError Traceback (most recent call last)
    99 real_data = np.reshape(real_data, (real_data.shape[0], real_data.shape[1], 1))
    100
    --> 101 prediction = model.predict(real_data)
    102 prediction = scaler.inverse_transform(prediction)
    103
    ..............
    ValueError: Error when checking input: expected lstm_3_input to have shape (60, 1) but got array with shape (59, 1)
    thanks!

  • @francoforte274
    @francoforte274 2 роки тому

    Can you help me please? In line 32 I get 'tuple index out of range'

  • @fredrickmahinay607
    @fredrickmahinay607 Рік тому

    Hey bro. Your code seems to only care about the test data. The real data seems to be forgotten and is not being considered on the plotted values?

  • @eigen_art_ich
    @eigen_art_ich Рік тому

    Do you use that script for coding predictions at Numeraire?

  • @mauricioascenciomartinez1308
    @mauricioascenciomartinez1308 2 роки тому +1

    I'm stuck, how do I print the prediction?

  • @NiepoprawnyKomentator
    @NiepoprawnyKomentator 2 роки тому

    Good job, thank's! :)

  • @tuhindas6745
    @tuhindas6745 2 роки тому +1

    Why did you scale the entire dataset using MinMax Scaling.. It causes data leakage into the test set. The reason why your prediction looks similar to actual values is because there is data leakage.. We should always fit and transform the train set only to fit the test set.

  • @Leo-jz3tu
    @Leo-jz3tu Рік тому

    Interesting subject! If this is suppose to be a tutorial you should probably explain more in general of what you're doing or give write more comments. Or both. Anyway, thanks for the video

  • @AP-gx8fw
    @AP-gx8fw 2 роки тому

    hello Sir,
    I would appreciate it if you make a video using Twitter API on sentiment analysis

  • @zacharyschneider6040
    @zacharyschneider6040 2 роки тому

    I'm unable to get a window showing for the graph

  • @Hasan-gh9gv
    @Hasan-gh9gv 3 роки тому

    Heyy bro first of all great video. I have a request, can you put your code on your github ?

  • @vincenthughes5795
    @vincenthughes5795 3 роки тому +5

    am I confusing something or testing data overlaps with training data? Is it not a problem?

  • @sovereignlivingsoul
    @sovereignlivingsoul Рік тому

    interesting, thanks for the video

  • @rompvmrix8103
    @rompvmrix8103 9 місяців тому

    hi bro your code requires transaction variables where is this value actually taken thanks man

  • @wko_
    @wko_ 3 роки тому

    I was happy when I saw the video notification, although I don't care about bitcoin..
    Brazilian here ✌

  • @elcapitaineenterprises5245
    @elcapitaineenterprises5245 3 роки тому

    Thanks for this video...been working step by step on how you were doing it but after everything, I run the program and this was the error message I got "'Sequential' object has no attribute 'prediction'." Can you please help out in solving this error? Thanks

    • @kevinchweya7310
      @kevinchweya7310 2 роки тому +1

      real_data = [model_inputs[len(model_inputs) - prediction_days:len(model_inputs) + 1, 0]]
      copied from someone else. Might help you.

  • @markphethean3831
    @markphethean3831 3 роки тому +1

    Great video, as always!🙌

  • @LeoSantos-rp3nx
    @LeoSantos-rp3nx 2 роки тому

    How Can I use this for future predicts?

  • @DimashCastellucci
    @DimashCastellucci 2 роки тому

    I am a newbie, i just started learning programming yesterday. This seems almost impossible for me to learn I dont even know what he is doing.

  • @NivBarchechet
    @NivBarchechet 2 роки тому

    i had a problem with line 8 and 9 importing keras from tensorflow. for me i needed to wirte from keras.layers import Dense, Dropout, LSTM thanks alot for everything men

    • @binarygun8221
      @binarygun8221 2 роки тому +4

      instead of
      tensorflow.keras.layers import Dense, Dropout, LSTM
      go with
      tensorflow.python.keras.layers import Dense, Dropout, LSTM

  • @drathez3359
    @drathez3359 3 роки тому +12

    Is there any way we could predict future price like it went ahead the actual price graph instead of it overlapping the current graph?
    Thank you in advance! :)

    • @user-oq3ti3cd8b
      @user-oq3ti3cd8b 2 роки тому

      No ,there is no way ,u cannot get the next predicted price unless actual price is already given .So the prediction is a False Proposition to some extent.

  • @marc_montalvez
    @marc_montalvez 2 роки тому

    I am lost, because I dont understand how I can see in the plot the prediction price for the future 30 days.

  • @balinmenezes1094
    @balinmenezes1094 Рік тому +1

    Hello
    Im getting an error saying: TypeError: string indices must be integers, not 'str'
    for data = web.DataReader(f'{crypto_currency}-{against_currency}', 'yahoo', start, end)
    please help me out asap

  • @ShafekulAbid
    @ShafekulAbid 3 роки тому

    you already have scaled the data then why did you reshape it again?

  • @turukhuder520
    @turukhuder520 Рік тому

    for x in range(prediction_days +1, len(scaled_data)):
    x_train.append(scaled_data[x-prediction_days-1:x-1, 0]) # using [1:60] to predict [61], [1:60] to predict [60] wrong!
    y_train.append(scaled_data[x,0])

  • @NuncX
    @NuncX Рік тому

    Where can I find the code from the video?

  • @afkbuster6874
    @afkbuster6874 3 роки тому

    best description

  • @nagendranarapareddy760
    @nagendranarapareddy760 3 роки тому +1

    Great dude 👍. Your videos like adrenaline booster's
    Waiting for next video 😁

  • @ahaanshah8984
    @ahaanshah8984 3 роки тому

    hey im getting the error 'float' object is not subscriptable on line 22 of my code. Here is the code: scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1,1)) I have tried but idk how to fix. Please somebody help.

    • @IovuAdrian1
      @IovuAdrian1 3 роки тому

      scaler = MinMaxScaler(feature_range=(0,1))
      scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1,1))

  • @ryanfurlong3213
    @ryanfurlong3213 3 роки тому +1

    I get the same error for both your stock tutorials when predicting the price: "expected lstm input to have shape (60,1) but got array shape (59,1) any ideas?

    • @MyChanel1310
      @MyChanel1310 3 роки тому +1

      I get the same error on both of them also

    • @IovuAdrian1
      @IovuAdrian1 3 роки тому +5

      real_data = [model_inputs[len(model_inputs) - prediction_days:len(model_inputs) + 1, 0]]

  • @kaushikbajaj3522
    @kaushikbajaj3522 2 роки тому

    Thank you so much sir

  • @asifshaikh594
    @asifshaikh594 2 роки тому +1

    I am getting error for tensor flow

  • @anshul1111
    @anshul1111 3 роки тому +1

    Hey, i got this error at timestamp 25:00. Please let me know why is this occuring
    TypeError: only integer scalar arrays can be converted to a scalar index

    • @DamagedBrain24
      @DamagedBrain24 3 роки тому

      Same error, if i figure it out i'il let you know

    • @DamagedBrain24
      @DamagedBrain24 3 роки тому

      I solved it. You probably have writed the last x_test var wrong (like me). Just use this
      x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))

  • @huntermckeown1144
    @huntermckeown1144 Рік тому +1

    I just want to say that what you are doing is awesome! We need more Americans like you my friend!

  • @CodewithSaad
    @CodewithSaad 7 місяців тому

    Which ide is being used

  • @IzUrBoiKK
    @IzUrBoiKK 3 роки тому +1

    I want go as my second learnt by you, pls make a series. p.s. I have only done python the best and bec of you bro!

  • @mohammadkw1937
    @mohammadkw1937 3 роки тому

    the code didn't work
    any help would be appreciated

  • @panagiotislitsas3991
    @panagiotislitsas3991 2 роки тому

    Why pip is not installing on my cmd?

  • @EttoreMastrogiacomo
    @EttoreMastrogiacomo 2 роки тому +1

    why do you use prices (they are not stationary) and not use returns instead?

    • @christiansmithson6575
      @christiansmithson6575 2 роки тому

      When using DL with LSTM, non-stationarity isn't really a issue. Unlike traditional time series analysis.

  • @sameersadventures4932
    @sameersadventures4932 3 роки тому

    I need this thanks

  • @nicolascalvisi3359
    @nicolascalvisi3359 2 роки тому

    6:12 i prefer gru and batchnormalisation.

  • @justsaying8753
    @justsaying8753 2 роки тому

    It seems that the training data and test data overlap. As far as I know, that's wrong.

  • @noobgamer16x2x8
    @noobgamer16x2x8 2 роки тому

    anyone has txt version of this code?

  • @pineapple3832
    @pineapple3832 Рік тому

    I just started this video and my initial reaction is “no way” because if it were this simple to accurately predict crypto this guy including every other ML programmer would be rich so this will most likely not work. However I’ll watch the rest of the video and edit this to include my thoughts after.

  • @vinistudypoints5148
    @vinistudypoints5148 4 місяці тому

    How to run this code?

  • @Krisler12
    @Krisler12 3 роки тому +2

    Please, how to make it to predict more than one value at a time and instead make it to predict 30 or 60 values at once after it analyses past X values sequence? Thank you!
    P.S.: Are you Romanian?

    • @NeuralNine
      @NeuralNine  3 роки тому +1

      I mentioned how it would work. No.

    • @gbagba81
      @gbagba81 2 роки тому

      apparently he's austrian from Vienna. But idk

  • @mert-fh2vx
    @mert-fh2vx 3 роки тому +3

    can you post the codes on github or somewhere else ?

    • @IovuAdrian1
      @IovuAdrian1 3 роки тому +4

      import numpy as np
      import matplotlib.pyplot as plt
      import pandas as pd
      import pandas_datareader as web
      import datetime as dt
      from sklearn.preprocessing import MinMaxScaler
      from tensorflow.keras.layers import Dense, Dropout, LSTM
      from tensorflow.keras.models import Sequential
      crypto_currency = 'BTC'
      against_currency = 'USD'
      start = dt.datetime(2020, 1, 1)
      end = dt.datetime.now()
      data = web.DataReader(f'{crypto_currency}-{against_currency}', 'yahoo', start, end)
      # Prepare Data
      #print(data.head())
      scaler = MinMaxScaler(feature_range=(0,1))
      scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1,1))
      prediction_days = 60
      x_train, y_train = [], []
      for x in range(prediction_days, len(scaled_data)):
      x_train.append(scaled_data[x-prediction_days:x, 0])
      y_train.append(scaled_data[x, 0])
      x_train , y_train = np.array(x_train), np.array(y_train)
      x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))
      # Create Neural Network
      model = Sequential()
      model.add(LSTM(units=50, return_sequences=True, input_shape=(x_train.shape[1], 1)))
      model.add(Dropout(0.2))
      model.add(LSTM(units=50, return_sequences=True))
      model.add(Dropout(0.2))
      model.add(LSTM(units=50))
      model.add(Dropout(0.2))
      model.add(Dense(units=1))
      model.compile(optimizer='adam', loss='mean_squared_error')
      model.fit(x_train, y_train, epochs=25, batch_size=32)
      test_start = dt.datetime(2021, 1, 1)
      test_end = dt.datetime.now()
      test_data = web.DataReader(f'{crypto_currency}-{against_currency}', 'yahoo', test_start, test_end)
      actual_prices = test_data['Close'].values
      total_dataset = pd.concat((data['Close'], test_data['Close']), axis=0)
      model_inputs = total_dataset[len(total_dataset) - len(test_data) - prediction_days:].values
      model_inputs = model_inputs.reshape(-1, 1)
      model_inputs = scaler.fit_transform(model_inputs)
      x_test = []
      for x in range(prediction_days, len(model_inputs)):
      x_test.append(model_inputs[x-prediction_days:x, 0])
      x_test = np.array(x_test)
      x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
      prediction_prices = model.predict(x_test)
      prediction_prices = scaler.inverse_transform(prediction_prices)
      plt.plot(actual_prices, color='black', label='Actual Prices')
      plt.plot(prediction_prices, color='green', label='Predicted Prices')
      plt.title(f'{crypto_currency} price prediction')
      plt.xlabel('Time')
      plt.ylabel('Price')
      plt.legend(loc='upper left')
      plt.show()

  • @salemabualem
    @salemabualem Рік тому +2

    I am getting this error
    TypeError: string indices must be integers
    when I run get reader line

    • @kobalt2923
      @kobalt2923 Рік тому +1

      Any fix available found for this?

  • @diogobranco1927
    @diogobranco1927 3 роки тому +1

    Hello there nice work. Tried to follow your code but my BTC or other currency prediction plot is a straight line one or two orders of magnitude above the real price... while training the model the loss is always 500k and I get this message: WARNING:tensorflow:Model was constructed with shape (None, 60, 1) for input KerasTensor(type_spec=TensorSpec(shape=(None, 60, 1), dtype=tf.float32, name='lstm_input'), name='lstm_input', description="created by layer 'lstm_input'"), but it was called on an input with incompatible shape (None, 59, 1).
    Could you help or share your code please so I can see what I'm doing wrong?
    Best regards and keep up the good work.

    • @dingdingdongbong921
      @dingdingdongbong921 3 роки тому

      I have the same error, still looking for a fix :(

    • @IovuAdrian1
      @IovuAdrian1 3 роки тому +4

      real_data = [model_inputs[len(model_inputs) - prediction_days:len(model_inputs) + 1, 0]]

    • @IovuAdrian1
      @IovuAdrian1 3 роки тому

      @@dingdingdongbong921 up

  • @loganbarker5341
    @loganbarker5341 2 роки тому +3

    I had an error with shaping in the real_data where I was getting errors stating expected shape=(None, 60, 1), found shape=(None, 59, 1). To fix this I had to remove the +1 in real_data = [model_inputs[len(model_inputs) + 1 - predict_days:len(model_inputs) + 1, 0]]. I changed it to real_data = [model_inputs[len(model_inputs) - predict_days:len(model_inputs) + 1, 0]], which changed the found shape to (1,60,1) instead of (1,59,1). Is this ok?

    • @gbagba81
      @gbagba81 2 роки тому

      you know i actually believe that to put just real_data = [model_inputs[ - predict_days:, 0]] will just do it, because, think you have to place an input to the prediction model with only the 60 latest days so you can predict the 61th one. the ugly thing there is just to figure what on earth is the ":" doing. so i started playing with it until i figured what was that actually expressing. i'll be looking after your answer good luck

  • @Rp73113
    @Rp73113 3 роки тому +1

    Why is line 17 giving me a syntaxerror: invalid syntax. Help

  • @addledanorak8297
    @addledanorak8297 3 роки тому +17

    why does the description say "Today we learn how to code a simple snake game in Python." 😂?

    • @NeuralNine
      @NeuralNine  3 роки тому +7

      oh boy thank you 😂

    • @richardpogoson
      @richardpogoson 3 роки тому

      Couldn't possibly be further from the truth!

  • @harunnmsanee5371
    @harunnmsanee5371 Рік тому

    How can I get these codes

  • @DUYTINTA
    @DUYTINTA Рік тому

    Interested!

  • @nicolascalvisi3359
    @nicolascalvisi3359 2 роки тому

    1:51 is it better that kite?

  • @SB-fg4ld
    @SB-fg4ld 3 роки тому +1

    the tensorflow command is giving me errors in anaconda. any help is greatly appreciated

  • @cryptoview2397
    @cryptoview2397 2 роки тому

    you are testing the model with the same data you used to train it.

  • @andrewted2992
    @andrewted2992 3 роки тому +3

    Сan I get the full code somewhere? Thanks for the videos 👍

    • @IovuAdrian1
      @IovuAdrian1 3 роки тому +8

      import numpy as np
      import matplotlib.pyplot as plt
      import pandas as pd
      import pandas_datareader as web
      import datetime as dt
      from sklearn.preprocessing import MinMaxScaler
      from tensorflow.keras.layers import Dense, Dropout, LSTM
      from tensorflow.keras.models import Sequential
      crypto_currency = 'BTC'
      against_currency = 'USD'
      start = dt.datetime(2020, 1, 1)
      end = dt.datetime.now()
      data = web.DataReader(f'{crypto_currency}-{against_currency}', 'yahoo', start, end)
      # Prepare Data
      #print(data.head())
      scaler = MinMaxScaler(feature_range=(0,1))
      scaled_data = scaler.fit_transform(data['Close'].values.reshape(-1,1))
      prediction_days = 60
      x_train, y_train = [], []
      for x in range(prediction_days, len(scaled_data)):
      x_train.append(scaled_data[x-prediction_days:x, 0])
      y_train.append(scaled_data[x, 0])
      x_train , y_train = np.array(x_train), np.array(y_train)
      x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))
      # Create Neural Network
      model = Sequential()
      model.add(LSTM(units=50, return_sequences=True, input_shape=(x_train.shape[1], 1)))
      model.add(Dropout(0.2))
      model.add(LSTM(units=50, return_sequences=True))
      model.add(Dropout(0.2))
      model.add(LSTM(units=50))
      model.add(Dropout(0.2))
      model.add(Dense(units=1))
      model.compile(optimizer='adam', loss='mean_squared_error')
      model.fit(x_train, y_train, epochs=25, batch_size=32)
      test_start = dt.datetime(2021, 1, 1)
      test_end = dt.datetime.now()
      test_data = web.DataReader(f'{crypto_currency}-{against_currency}', 'yahoo', test_start, test_end)
      actual_prices = test_data['Close'].values
      total_dataset = pd.concat((data['Close'], test_data['Close']), axis=0)
      model_inputs = total_dataset[len(total_dataset) - len(test_data) - prediction_days:].values
      model_inputs = model_inputs.reshape(-1, 1)
      model_inputs = scaler.fit_transform(model_inputs)
      x_test = []
      for x in range(prediction_days, len(model_inputs)):
      x_test.append(model_inputs[x-prediction_days:x, 0])
      x_test = np.array(x_test)
      x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
      prediction_prices = model.predict(x_test)
      prediction_prices = scaler.inverse_transform(prediction_prices)
      plt.plot(actual_prices, color='black', label='Actual Prices')
      plt.plot(prediction_prices, color='green', label='Predicted Prices')
      plt.title(f'{crypto_currency} price prediction')
      plt.xlabel('Time')
      plt.ylabel('Price')
      plt.legend(loc='upper left')
      plt.show()

    • @alwinjoseph4682
      @alwinjoseph4682 2 роки тому

      @@IovuAdrian1 You are love!

  • @mumennemer2580
    @mumennemer2580 2 роки тому

    I've the problem with tensorflow
    No module named 'tensorflow'
    i installed it with comand pip install tensorflow but it's not working though
    if any one had the Problem and solved it please pm me

    • @rafaelzanfolin7745
      @rafaelzanfolin7745 2 роки тому

      I had the same mistaked. You need to download Python 3.7.9, can't be higher than 3.8, and you should download python 64 bits, not the 32 bits