Closed Delightai6881 closed 11 months ago


Що можно сказати про це # Імпортуємо необхідні бібліотеки import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from sklearn.preprocessing import MinMaxScaler # Завантажуємо дані про ціни криптовалют з CoinMarketCap # Ви можете змінити назви криптовалют, які вас цікавлять # Ми використовуємо дані за останні 30 днів url = "https://coinmarketcap.com/currencies/{}/historical-data/?start=20231001&end=20231101" currencies = ["bitcoin", "ethereum", "trust-wallet-token"] data = {} for currency in currencies: data[currency] = pd.read_csv(url.format(currency)) # Переглядаємо дані для TWT data["trust-wallet-token"].head() # Вибираємо колонку Close для кожної криптовалюти # Це є ціною, за якою криптовалюта закривалася в кінці дня close_data = pd.DataFrame() for currency in currencies: close_data[currency] = data[currency]["Close"] # Нормалізуємо дані, щоб вони були в діапазоні від 0 до 1 # Це допомагає моделі навчатися краще scaler = MinMaxScaler() scaled_data = scaler.fit_transform(close_data) scaled_data = pd.DataFrame(scaled_data, columns=currencies) # Візуалізуємо дані на графіку plt.figure(figsize=(12, 8)) plt.plot(scaled_data) plt.legend(currencies) plt.title("Нормалізовані ціни криптовалют за останні 30 днів") plt.xlabel("Дні") plt.ylabel("Ціни") plt.show() # Створюємо тренувальні та тестові дані # Ми використовуємо 80% даних для тренування та 20% для тестування # Ми також використовуємо віконну функцію, щоб створити послідовності даних # Кожна послідовність має довжину 10 днів та передбачає ціну на 11-й день window_size = 10 train_size = int(len(scaled_data) * 0.8) test_size = len(scaled_data) - train_size train_data = scaled_data.iloc[:train_size] test_data = scaled_data.iloc[train_size:] def create_sequences(data, window_size): x = [] y = [] for i in range(window_size, len(data)): x.append(data.iloc[i-window_size:i]) y.append(data.iloc[i]) return np.array(x), np.array(y) x_train, y_train = create_sequences(train_data, window_size) x_test, y_test = create_sequences(test_data, window_size) # Перевіряємо розміри даних print(x_train.shape, y_train.shape) print(x_test.shape, y_test.shape) # Створюємо модель штучної нейронної мережі з використанням TensorFlow # Ми використовуємо три шари LSTM для вивчення часових залежностей # Ми також використовуємо шар Dropout для запобігання перенавчанню # Ми використовуємо шар Dense для виведення передбачень для кожної криптовалюти model = tf.keras.models.Sequential([ tf.keras.layers.LSTM(64, return_sequences=True, input_shape=(window_size, len(currencies))), tf.keras.layers.Dropout(0.2), tf.keras.layers.LSTM(64, return_sequences=True), tf.keras.layers.Dropout(0.2), tf.keras.layers.LSTM(64), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(len(currencies)) ]) # Компілюємо модель з використанням оптимізатора Adam та функції втрат MSE model.compile(optimizer="adam", loss="mean_squared_error") # Навчаємо модель на тренувальних даних з використанням 50 епох model.fit(x_train, y_train, epochs=50, batch_size=32, verbose=1) # Оцінюємо модель на тестових даних model.evaluate(x_test, y_test) # Робимо передбачення на тестових даних y_pred = model.predict(x_test) # Обертаємо нормалізацію, щоб отримати реальні ціни y_pred = scaler.inverse_transform(y_pred) y_test = scaler.inverse_transform(y_test) # Візуалізуємо реальні та передбачені ціни на графіку plt.figure(figsize=(12, 8)) plt.plot(y_test[:, 2], label="Реальна ціна TWT") plt.plot(y_pred[:, 2], label="Передбачена ціна TWT") plt.legend() plt.title("Реальна та передбачена ціна Trust Wallet Token за останні 6 днів") plt.xlabel("Дні") plt.ylabel("Ціни") plt.show() &end=20240901".format('bitcoin') df = pd.read_html(url)[0] df.head() # Додаємо стовпець імен і визначаємо її як індекс df = df.set_index('Date') df.head() # Поділяємо дані на дві частини # Одна для навчання моделі, інша для тестування нашої моделі split_date = '2024-04-01' df = df[df.index < split_date] # Виведемо граф


&end=20221104" coins = ['bitcoin', 'ethereum', 'tron'] coinData = {} for coin in coins: data = pd.read_html(url.format(coin))[0] # Конвертуємо дату в формат timestamp і задаємо її як індекс датафрейма data['Date'] = pd.to_datetime(data['Date']) data.set_index('Date', inplace=True) # Якщо потрібно, Ви можете змінити валюту, в якій відображаються дані (USD, EUR, GBP) data['Volume'] = data['Volume'].str.replace(',', '').astype('float') data['Price'].str.replace(',', '').astype('float') / data['Market Cap'].str.replace(',', '').astype('float') data.drop(['Open', 'High', 'Low', 'Market Cap'], axis=1, inplace=True) name = "{}_USD".format(coin) coinData[name] = data # Завантажуємо дані у один датафрейм data = pd.concat(coinData) # Відображаємо ціни криптовалют print(data)
Виведемо також графік цін криптовалют.
Це посилання на твіт, який був згенерований за допомогою штучного інтелекту на основі даних з посилання 3. Твіт містить код, який використовується для створення графічного мистецтва за допомогою функції VDOM. Твіт також має посилання на Twitter Spaces, де відбулася розмова між Мері Баррою та Ілоном Маском про майбутнє автомобільної промисловості 2. Твіт отримав багато уваги від користувачів Twitter, які зацікавлені в технологіях та інновація. https://twitter.com/quantum_gl/status/100079554185239?id=/i/spaces/1OdKrjagNBQKX?M&uid=176982567ua=-NB4rA Докладніше: