سلام استاد وقت بخیر.
من از تابع train_test_split ی مشکل داشتم
من این خط کد رو مثل کد شما نوشتم
xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.2)
ولی این ارور میاد
سلام
ارور به خالی بودن بخش train اشاره میکنه، بخش train دیتاستتون رو بررسی کنید.
در برخی موارد هم مشکل از کتابخانه scikitlearn هست.
در لینک زیر توضیحاتی ارائه شده:
ببخشید استاد دیتاست و لینک رو چک کردم ولی تغییری ایجاد نشد میشه لطفا شما این کد رو چک کنید
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.svm import SVR
from sklearn.model_selection import train_test_split
import streamlit as st
from PIL import Image
import tsemodule as tm
import yfinance as yf
st.write("""
# Stock Analyzer
by Ranger Omid
""")
img_trade = Image.open("C:/Users/Ranger Omid/PycharmProjects/pythonProject1/Stocks/Trade.jpg")
st.image(img_trade, width=550)
Symbol_list = ['GOOG', 'AAPL', 'AMZN', 'TSLA', 'BRKA', 'BRKB', 'وتجارت', 'کاما']
def get_input_Forex():
nDays = st.sidebar.text_input('Last Days', 50)
Symbol = st.sidebar.selectbox('Select Stock Symbol: ', Symbol_list)
return Symbol, nDays
def get_company_name(Symbol):
if Symbol == 'GOOG':
return 'Google'
elif Symbol == 'AAPL':
return 'Apple'
elif Symbol == 'AMZN':
return 'Amazon'
elif Symbol == 'TSLA':
return 'Tesla'
elif Symbol == 'BRKA':
return 'Berkshire Hathaway'
elif Symbol == 'BRKB':
return 'Berkshire Hathaway'
elif Symbol == 'وتجارت':
return 'Tejarat Bank'
elif Symbol == 'کاما':
return 'Bama Inc.'
else:
"Couldn't find the symbol"
def get_data(Symbol, nDays):
if Symbol.upper() == 'AAPL':
Data = yf.Ticker("AAPL")
df = Data.history(period='1d', start='2018-01-01')
elif Symbol.upper() == 'GOOG':
Data = yf.Ticker("GOOG")
df = Data.history(period='1d', start='2018-01-01')
elif Symbol.upper() == 'AMZN':
Data = yf.Ticker("AMZN")
df = Data.history(period='1d', start='2018-01-01')
elif Symbol.upper() == 'TSLA':
Data = yf.Ticker("TSLA")
df = Data.history(period='1d', start='2018-01-01')
elif Symbol.upper() == 'BRKA':
Data = yf.Ticker("BRK-A")
df = Data.history(period='1d', start='2018-01-01')
elif Symbol.upper() == 'BRKB':
Data = yf.Ticker("BRK-B")
df = Data.history(period='1d', start='2018-01-01')
elif Symbol.upper() == 'وتجارت':
df = tm.stock('وتجارت')
elif Symbol.upper() == 'کاما':
df = tm.stock('کاما')
else:
df = pd.DataFrame(
columns=['Date', 'First', 'High', 'Low', 'Close', 'Value', 'Volume', 'Openint', 'Per', 'Open', 'last'])
nDays = int(nDays)
df = df.tail(nDays)
return df
Symbol, nDays = get_input_Forex()
df = get_data(Symbol, nDays)
company = get_company_name(Symbol)
st.header(company + ' **Close Price**\n')
st.line_chart(df.Close)
st.header(company + ' **Volume**\n')
try:
st.line_chart(df.Volume)
except:
st.line_chart(df['<VOL>'])
st.header('Stock Data')
st.write(df.describe())
df = df[['Close']]
forecast = int(nDays)
df['Prediction'] = df[['Close']].shift(-forecast)
x = np.array(df.drop(['Prediction'], 1))
x = x[:-forecast]
y = np.array(df['Prediction'])
y = y[:-forecast]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, train_size=0.8)
mysvr = SVR(kernel='rbf', C=1000, gamma=0.1)
mysvr.fit(x_train, y_train)
svmconf = mysvr.score(x_test, y_test)
st.header('SVM Accuracy')
st.success(svmconf)
x_forecast = np.array(df.drop(['Prediction'], 1))[-forecast:]
svmpred = mysvr.predict(x_forecast)
st.header('SVM Prediction')
st.success(svmpred)
lr = LinearRegression()
lr.fit(x_train, y_train)
lrconf = lr.score(x_test, y_test)
st.header('LR Accuracy')
st.success(lrconf)
lrpred = lr.predict(x_forecast)
st.header('LR Prediction')
st.success(lrpred)