• 1400/01/22

train test split :

سلام استاد وقت بخیر.

من از تابع train_test_split ی مشکل داشتم

من این خط کد رو مثل کد شما نوشتم

xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.2)

ولی این ارور میاد

  • 1400/01/23
  • ساعت 08:30

سلام 

ارور به خالی بودن بخش train اشاره میکنه، بخش train دیتاست‌تون رو بررسی کنید.

در برخی موارد هم مشکل از کتابخانه scikitlearn هست.

در لینک زیر توضیحاتی ارائه شده:

https://stackoverflow.com/questions/56396950/how-to-fix-value-error-with-train-test-split-in-python-numpy

 


  • 1400/01/23
  • ساعت 10:37

ببخشید استاد دیتاست و لینک رو چک کردم ولی تغییری ایجاد نشد میشه لطفا شما این کد رو چک کنید

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)

logo-samandehi