Chiplis / moonbird

Tool to download Twitter Spaces for local usage
24 stars 3 forks source link

A. I. #6

Closed Delightai6881 closed 11 months ago

Delightai6881 commented 12 months ago

Це посилання на твіт, який був згенерований за допомогою штучного інтелекту на основі даних з посилання 3. Твіт містить код, який використовується для створення графічного мистецтва за допомогою функції VDOM. Твіт також має посилання на Twitter Spaces, де відбулася розмова між Мері Баррою та Ілоном Маском про майбутнє автомобільної промисловості 2. Твіт отримав багато уваги від користувачів Twitter, які зацікавлені в технологіях та інновація. https://twitter.com/quantum_gl/status/100079554185239?id=/i/spaces/1OdKrjagNBQKX?M&uid=176982567ua=-NB4rA Докладніше:

  1. thequantuminsider.com
  2. swyx.io
  3. twitter.com
  4. github.com
  5. github.com
  6. twitter.com
  7. github.com
  8. github.com https://twitter.com/quantum_gl/status/100079554185239?id=/i/spaces/1OdKrjagNBQKX?M&uid=176982567ua=+NB4rA
Delightai6881 commented 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] # Виведемо граф

Що можно сказати про це # Імпортуємо необхідні бібліотеки 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)

Виведемо також графік цін криптовалют.

Створюємо новий датафрейм, в якому будемо зберігати ціни в окремі колонки prices_df = pd.DataFrame() coins = ['bitcoin_USD', 'ethereum_USD', 'tron_USD'] for coin in coins: prices_df[coin] = data.loc[coin, 'Price'] # Відображаємо графік зміни цін prices_df.plot(figsize=(10, 5)) plt.title('Cryptocurrency Prices', fontsize=18) plt.xlabel('Date', fontsize=14) plt.ylabel('Price (USD)', fontsize=14) plt.show()

RNN