diff --git a/deploy_done.ipynb b/deploy_done.ipynb index 04e65c9..077411d 100644 --- a/deploy_done.ipynb +++ b/deploy_done.ipynb @@ -41,14 +41,14 @@ "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n", "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n", "\u001b[38;5;39mFetching cached versions of financial-sentiment\u001b[0m\n", - "\u001b[38;5;39mLatest version of financial-sentiment is 0 (from versions: 0)\u001b[0m\n", - "\u001b[38;5;39mFile financial-sentiment-0 found in cache\u001b[0m\n" + "\u001b[38;5;39mLatest version of financial-sentiment is 1 (from versions: 0, 1)\u001b[0m\n", + "\u001b[38;5;39mFile financial-sentiment-1 found in cache\u001b[0m\n" ] } ], "source": [ "from great_ai.utilities import clean\n", - "from great_ai import use_model, GreatAI, log_metric\n", + "from great_ai import use_model, GreatAI, log_metric, ClassificationOutput\n", "import re\n", "\n", "def normalize(text: str) -> str:\n", @@ -57,7 +57,7 @@ "\n", "@GreatAI.create\n", "@use_model('financial-sentiment')\n", - "def predict_financial_sentiment(text: str, model):\n", + "def predict_financial_sentiment(text: str, model) -> ClassificationOutput:\n", " \"\"\"Classify news articles into Negative, Neutral, or Positive classes using a linear SVM.\"\"\"\n", " text = normalize(text)\n", " features = model.named_steps[\"tfidfvectorizer\"].transform([text])\n", @@ -93,7 +93,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 200/200 [00:28<00:00, 7.05it/s]\n" + "100%|██████████| 200/200 [00:24<00:00, 8.03it/s]\n" ] }, { @@ -102,19 +102,19 @@ "text": [ " precision recall f1-score support\n", "\n", - " negative 0.72 0.38 0.50 34\n", - " neutral 0.72 0.90 0.80 100\n", - " positive 0.86 0.74 0.80 66\n", + " negative 0.45 0.17 0.25 29\n", + " neutral 0.70 0.85 0.77 102\n", + " positive 0.77 0.72 0.75 69\n", "\n", - " accuracy 0.76 200\n", - " macro avg 0.77 0.67 0.70 200\n", - "weighted avg 0.77 0.76 0.75 200\n", + " accuracy 0.71 200\n", + " macro avg 0.64 0.58 0.59 200\n", + "weighted avg 0.69 0.71 0.69 200\n", "\n" ] }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -155,15 +155,40 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\u001b[38;5;39m2022-08-08 13:16:05 | INFO | Converting notebook to Python script\u001b[0m\n", - "\u001b[38;5;196m2022-08-08 13:16:05 | ERROR | local variable 'app_name' referenced before assignment\u001b[0m\n" + "\u001b[38;5;39m2022-08-11 11:14:04 | INFO | Converting notebook to Python script\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:04 | INFO | Found `predict_financial_sentiment` to be the GreatAI app \u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:04 | INFO | Uvicorn running on http://0.0.0.0:6060 (Press CTRL+C to quit)\u001b[0m\n", + "\u001b[38;5;226m2022-08-11 11:14:06 | WARNING | Environment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n", + "\u001b[38;5;226m2022-08-11 11:14:06 | WARNING | Cannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n", + "\u001b[38;5;226m2022-08-11 11:14:06 | WARNING | The selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n", + "\u001b[38;5;226m2022-08-11 11:14:06 | WARNING | Cannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | GreatAI (v0.1.10): configured ✅\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | 🔩 is_production: False\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | 🔩 should_log_exception_stack: True\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | 🔩 prediction_cache_size: 512\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | 🔩 dashboard_table_size: 50\u001b[0m\n", + "\u001b[38;5;226m2022-08-11 11:14:06 | WARNING | You still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n", + "\u001b[38;5;226m2022-08-11 11:14:06 | WARNING | > Find out more at https://se-ml.github.io/practices\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | Fetching cached versions of financial-sentiment\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | Latest version of financial-sentiment is 1 (from versions: 0, 1)\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | File financial-sentiment-1 found in cache\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | Started server process [7439]\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | Waiting for application startup.\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:06 | INFO | Application startup complete.\u001b[0m\n", + "^C\n", + "\u001b[38;5;39m2022-08-11 11:14:09 | INFO | Shutting down\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:09 | INFO | Waiting for application shutdown.\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:09 | INFO | Application shutdown complete.\u001b[0m\n", + "\u001b[38;5;39m2022-08-11 11:14:09 | INFO | Finished server process [7439]\u001b[0m\n" ] } ], @@ -196,7 +221,7 @@ "orig_nbformat": 4, "vscode": { "interpreter": { - "hash": "e0dc90c18746bdc09777f769a185ca5580a11b02153b98d31c3fa7ad1694afce" + "hash": "2d14168167fa54a6b45c0bc59cb2c3f9a595bd48203d3180b96450e9d825e160" } } }, diff --git a/train.ipynb b/train.ipynb index 225ccc6..eda0cf8 100644 --- a/train.ipynb +++ b/train.ipynb @@ -11,9 +11,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33mWARNING: You are using pip version 20.1.1; however, version 22.2.2 is available.\n", + "You should consider upgrading via the '/Users/andras/great-ai-interview-task/.env/bin/python -m pip install --upgrade pip' command.\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "!rm -f tracing_database.json\n", "%pip install --upgrade great-ai > /dev/null" @@ -21,9 +31,228 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SentenceSentiment
0The GeoSolutions technology will leverage Bene...positive
1$ESI on lows, down $1.50 to $2.50 BK a real po...negative
2For the last quarter of 2010 , Componenta 's n...positive
3According to the Finnish-Russian Chamber of Co...neutral
4The Swedish buyout firm has sold its remaining...neutral
5$SPY wouldn't be surprised to see a green closepositive
6Shell's $70 Billion BG Deal Meets Shareholder ...negative
7SSH COMMUNICATIONS SECURITY CORP STOCK EXCHANG...negative
8Kone 's net sales rose by some 14 % year-on-ye...positive
9The Stockmann department store will have a tot...neutral
10Circulation revenue has increased by 5 % in Fi...positive
11$SAP Q1 disappoints as #software licenses down...negative
12The subdivision made sales revenues last year ...positive
13Viking Line has canceled some services .neutral
14Ahlstrom Corporation STOCK EXCHANGE ANNOUNCEME...neutral
15$FB gone green on daypositive
16$MSFT SQL Server revenue grew double-digit wit...positive
17According to L+ñnnen Tehtaat 's CEO Matti Karp...neutral
18The company 's share is quoted on NASDAQ OMX H...neutral
19Elcoteq SE is listed on the Nasdaq OMX Helsink...neutral
20Two of these contracts are for turntable anode...neutral
21Aviva, Friends Life top forecasts ahead of 5.6...positive
22In stead of being based on a soft drink , as i...neutral
23The company plans to increase the unit 's spec...neutral
24The company closed last year with a turnover o...neutral
25Shire CEO steps up drive to get Baxalta board ...positive
26Costco: A Premier Retail Dividend Play https:/...positive
27The five-storey , eco-efficient building will ...neutral
28The first installment of the Cinema Series con...neutral
29All are welcome .neutral
\n", + "
" + ], + "text/plain": [ + " Sentence Sentiment\n", + "0 The GeoSolutions technology will leverage Bene... positive\n", + "1 $ESI on lows, down $1.50 to $2.50 BK a real po... negative\n", + "2 For the last quarter of 2010 , Componenta 's n... positive\n", + "3 According to the Finnish-Russian Chamber of Co... neutral\n", + "4 The Swedish buyout firm has sold its remaining... neutral\n", + "5 $SPY wouldn't be surprised to see a green close positive\n", + "6 Shell's $70 Billion BG Deal Meets Shareholder ... negative\n", + "7 SSH COMMUNICATIONS SECURITY CORP STOCK EXCHANG... negative\n", + "8 Kone 's net sales rose by some 14 % year-on-ye... positive\n", + "9 The Stockmann department store will have a tot... neutral\n", + "10 Circulation revenue has increased by 5 % in Fi... positive\n", + "11 $SAP Q1 disappoints as #software licenses down... negative\n", + "12 The subdivision made sales revenues last year ... positive\n", + "13 Viking Line has canceled some services . neutral\n", + "14 Ahlstrom Corporation STOCK EXCHANGE ANNOUNCEME... neutral\n", + "15 $FB gone green on day positive\n", + "16 $MSFT SQL Server revenue grew double-digit wit... positive\n", + "17 According to L+ñnnen Tehtaat 's CEO Matti Karp... neutral\n", + "18 The company 's share is quoted on NASDAQ OMX H... neutral\n", + "19 Elcoteq SE is listed on the Nasdaq OMX Helsink... neutral\n", + "20 Two of these contracts are for turntable anode... neutral\n", + "21 Aviva, Friends Life top forecasts ahead of 5.6... positive\n", + "22 In stead of being based on a soft drink , as i... neutral\n", + "23 The company plans to increase the unit 's spec... neutral\n", + "24 The company closed last year with a turnover o... neutral\n", + "25 Shire CEO steps up drive to get Baxalta board ... positive\n", + "26 Costco: A Premier Retail Dividend Play https:/... positive\n", + "27 The five-storey , eco-efficient building will ... neutral\n", + "28 The first installment of the Cinema Series con... neutral\n", + "29 All are welcome . neutral" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import pandas as pd\n", "\n", @@ -36,9 +265,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;226mEnvironment variable ENVIRONMENT is not set, defaulting to development mode ‼️\u001b[0m\n", + "\u001b[38;5;226mCannot find credentials files, defaulting to using ParallelTinyDbDriver\u001b[0m\n", + "\u001b[38;5;226mThe selected tracing database (ParallelTinyDbDriver) is not recommended for production\u001b[0m\n", + "\u001b[38;5;226mCannot find credentials files, defaulting to using LargeFileLocal\u001b[0m\n", + "\u001b[38;5;39mGreatAI (v0.1.10): configured ✅\u001b[0m\n", + "\u001b[38;5;39m 🔩 tracing_database: ParallelTinyDbDriver\u001b[0m\n", + "\u001b[38;5;39m 🔩 large_file_implementation: LargeFileLocal\u001b[0m\n", + "\u001b[38;5;39m 🔩 is_production: False\u001b[0m\n", + "\u001b[38;5;39m 🔩 should_log_exception_stack: True\u001b[0m\n", + "\u001b[38;5;39m 🔩 prediction_cache_size: 512\u001b[0m\n", + "\u001b[38;5;39m 🔩 dashboard_table_size: 50\u001b[0m\n", + "\u001b[38;5;226mYou still need to check whether you follow all best practices before trusting your deployment.\u001b[0m\n", + "\u001b[38;5;226m> Find out more at https://se-ml.github.io/practices\u001b[0m\n" + ] + } + ], "source": [ "from great_ai import add_ground_truth, delete_ground_truth\n", "\n", @@ -50,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -62,9 +311,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 4965/4965 [00:01<00:00, 3023.88it/s]\n", + "100%|██████████| 877/877 [00:01<00:00, 718.68it/s]\n" + ] + } + ], "source": [ "from great_ai.utilities import clean, simple_parallel_map\n", "import re\n", @@ -83,7 +341,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -101,9 +359,515 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 4 folds for each of 150 candidates, totalling 600 fits\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mean_fit_timestd_fit_timemean_score_timestd_score_timeparam_sgdclassifier__alphaparam_sgdclassifier__l1_ratioparamssplit0_test_scoresplit1_test_scoresplit2_test_scoresplit3_test_scoremean_test_scorestd_test_scorerank_test_score
1410.5575380.0362770.0795570.0018590.0001390.74698{'sgdclassifier__alpha': 0.0001386590973076251...0.6027780.5834470.6092180.6177130.6032890.0126211
620.5177360.0171730.0750060.0089210.0001230.633796{'sgdclassifier__alpha': 0.0001230949372392475...0.6030520.5927010.5953100.6152320.6015740.0087562
440.5865680.0341250.0757110.0151890.0001010.744511{'sgdclassifier__alpha': 0.0001008328469921404...0.6057090.5862590.5924000.6143930.5996900.0110223
150.5034850.0526010.0766520.0057080.0001010.717281{'sgdclassifier__alpha': 0.0001012954906445695...0.5969200.5906120.5890200.6086950.5963120.0077364
1200.6268890.0370780.0874960.0137050.0001040.521099{'sgdclassifier__alpha': 0.0001043130639528788...0.5928210.5857630.5826230.6135230.5936830.0120365
770.6570040.0203890.0866460.0218490.0000720.869767{'sgdclassifier__alpha': 7.2395771533531e-05, ...0.5850780.5877270.5823600.6004860.5889130.0069466
1240.4580760.0033280.0810670.0032020.0002860.729062{'sgdclassifier__alpha': 0.0002860219318437106...0.5991200.5650350.5831090.6040000.5878160.0152557
40.4238890.0145500.0703640.0108870.000340.793499{'sgdclassifier__alpha': 0.0003401382442436040...0.5741580.5512400.5809910.5936870.5750190.0154148
1130.4281090.0230820.0831290.0109220.000440.682686{'sgdclassifier__alpha': 0.0004397417391475943...0.5601920.5349550.5670350.5564300.5546530.0119919
510.3761920.0084710.0732430.0056550.0004970.624651{'sgdclassifier__alpha': 0.0004970440243574691...0.5564480.5256590.5577450.5358560.5439270.01366210
650.4032970.0192180.0817350.0085570.0006540.790485{'sgdclassifier__alpha': 0.0006536354435155366...0.4945680.4948900.5210740.4982990.5022080.01099011
430.3768180.0157210.0829440.0119490.0006870.72785{'sgdclassifier__alpha': 0.0006872056831731454...0.4868920.4802040.5181210.4900730.4938230.01447412
1360.4309720.0220910.0812940.0131430.0007520.677539{'sgdclassifier__alpha': 0.0007522879894549428...0.4659510.4653310.5041550.4834930.4797320.01587413
90.3722050.0127700.0736530.0081340.0008170.83729{'sgdclassifier__alpha': 0.0008166269999644726...0.4588280.4544150.4878190.4717930.4682140.01299714
130.3658070.0250050.0696530.0060560.0008750.858839{'sgdclassifier__alpha': 0.0008750004969715541...0.4543650.4402850.4772970.4599600.4579770.01326015
820.3771830.0200590.0802630.0042960.0008660.681585{'sgdclassifier__alpha': 0.0008664113622514768...0.4513830.4377880.4706050.4580120.4544470.01183916
990.4028630.0148000.0807050.0082750.0009340.885396{'sgdclassifier__alpha': 0.0009337381961170587...0.4446630.4339310.4694510.4567950.4512100.01327917
1090.3905090.0212120.0750470.0103540.0009090.618578{'sgdclassifier__alpha': 0.0009094221175006189...0.4416680.4261300.4653210.4488660.4454960.01409018
910.3987500.0117650.0831760.0080700.0009650.735892{'sgdclassifier__alpha': 0.0009645020235766322...0.4319570.4196800.4562910.4421210.4375120.01344219
190.3406920.0176180.0753920.0159130.001090.572366{'sgdclassifier__alpha': 0.0010901894985476288...0.4181860.4051710.4327160.4226890.4196900.00989620
\n", + "
" + ], + "text/plain": [ + " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", + "141 0.557538 0.036277 0.079557 0.001859 \n", + "62 0.517736 0.017173 0.075006 0.008921 \n", + "44 0.586568 0.034125 0.075711 0.015189 \n", + "15 0.503485 0.052601 0.076652 0.005708 \n", + "120 0.626889 0.037078 0.087496 0.013705 \n", + "77 0.657004 0.020389 0.086646 0.021849 \n", + "124 0.458076 0.003328 0.081067 0.003202 \n", + "4 0.423889 0.014550 0.070364 0.010887 \n", + "113 0.428109 0.023082 0.083129 0.010922 \n", + "51 0.376192 0.008471 0.073243 0.005655 \n", + "65 0.403297 0.019218 0.081735 0.008557 \n", + "43 0.376818 0.015721 0.082944 0.011949 \n", + "136 0.430972 0.022091 0.081294 0.013143 \n", + "9 0.372205 0.012770 0.073653 0.008134 \n", + "13 0.365807 0.025005 0.069653 0.006056 \n", + "82 0.377183 0.020059 0.080263 0.004296 \n", + "99 0.402863 0.014800 0.080705 0.008275 \n", + "109 0.390509 0.021212 0.075047 0.010354 \n", + "91 0.398750 0.011765 0.083176 0.008070 \n", + "19 0.340692 0.017618 0.075392 0.015913 \n", + "\n", + " param_sgdclassifier__alpha param_sgdclassifier__l1_ratio \\\n", + "141 0.000139 0.74698 \n", + "62 0.000123 0.633796 \n", + "44 0.000101 0.744511 \n", + "15 0.000101 0.717281 \n", + "120 0.000104 0.521099 \n", + "77 0.000072 0.869767 \n", + "124 0.000286 0.729062 \n", + "4 0.00034 0.793499 \n", + "113 0.00044 0.682686 \n", + "51 0.000497 0.624651 \n", + "65 0.000654 0.790485 \n", + "43 0.000687 0.72785 \n", + "136 0.000752 0.677539 \n", + "9 0.000817 0.83729 \n", + "13 0.000875 0.858839 \n", + "82 0.000866 0.681585 \n", + "99 0.000934 0.885396 \n", + "109 0.000909 0.618578 \n", + "91 0.000965 0.735892 \n", + "19 0.00109 0.572366 \n", + "\n", + " params split0_test_score \\\n", + "141 {'sgdclassifier__alpha': 0.0001386590973076251... 0.602778 \n", + "62 {'sgdclassifier__alpha': 0.0001230949372392475... 0.603052 \n", + "44 {'sgdclassifier__alpha': 0.0001008328469921404... 0.605709 \n", + "15 {'sgdclassifier__alpha': 0.0001012954906445695... 0.596920 \n", + "120 {'sgdclassifier__alpha': 0.0001043130639528788... 0.592821 \n", + "77 {'sgdclassifier__alpha': 7.2395771533531e-05, ... 0.585078 \n", + "124 {'sgdclassifier__alpha': 0.0002860219318437106... 0.599120 \n", + "4 {'sgdclassifier__alpha': 0.0003401382442436040... 0.574158 \n", + "113 {'sgdclassifier__alpha': 0.0004397417391475943... 0.560192 \n", + "51 {'sgdclassifier__alpha': 0.0004970440243574691... 0.556448 \n", + "65 {'sgdclassifier__alpha': 0.0006536354435155366... 0.494568 \n", + "43 {'sgdclassifier__alpha': 0.0006872056831731454... 0.486892 \n", + "136 {'sgdclassifier__alpha': 0.0007522879894549428... 0.465951 \n", + "9 {'sgdclassifier__alpha': 0.0008166269999644726... 0.458828 \n", + "13 {'sgdclassifier__alpha': 0.0008750004969715541... 0.454365 \n", + "82 {'sgdclassifier__alpha': 0.0008664113622514768... 0.451383 \n", + "99 {'sgdclassifier__alpha': 0.0009337381961170587... 0.444663 \n", + "109 {'sgdclassifier__alpha': 0.0009094221175006189... 0.441668 \n", + "91 {'sgdclassifier__alpha': 0.0009645020235766322... 0.431957 \n", + "19 {'sgdclassifier__alpha': 0.0010901894985476288... 0.418186 \n", + "\n", + " split1_test_score split2_test_score split3_test_score mean_test_score \\\n", + "141 0.583447 0.609218 0.617713 0.603289 \n", + "62 0.592701 0.595310 0.615232 0.601574 \n", + "44 0.586259 0.592400 0.614393 0.599690 \n", + "15 0.590612 0.589020 0.608695 0.596312 \n", + "120 0.585763 0.582623 0.613523 0.593683 \n", + "77 0.587727 0.582360 0.600486 0.588913 \n", + "124 0.565035 0.583109 0.604000 0.587816 \n", + "4 0.551240 0.580991 0.593687 0.575019 \n", + "113 0.534955 0.567035 0.556430 0.554653 \n", + "51 0.525659 0.557745 0.535856 0.543927 \n", + "65 0.494890 0.521074 0.498299 0.502208 \n", + "43 0.480204 0.518121 0.490073 0.493823 \n", + "136 0.465331 0.504155 0.483493 0.479732 \n", + "9 0.454415 0.487819 0.471793 0.468214 \n", + "13 0.440285 0.477297 0.459960 0.457977 \n", + "82 0.437788 0.470605 0.458012 0.454447 \n", + "99 0.433931 0.469451 0.456795 0.451210 \n", + "109 0.426130 0.465321 0.448866 0.445496 \n", + "91 0.419680 0.456291 0.442121 0.437512 \n", + "19 0.405171 0.432716 0.422689 0.419690 \n", + "\n", + " std_test_score rank_test_score \n", + "141 0.012621 1 \n", + "62 0.008756 2 \n", + "44 0.011022 3 \n", + "15 0.007736 4 \n", + "120 0.012036 5 \n", + "77 0.006946 6 \n", + "124 0.015255 7 \n", + "4 0.015414 8 \n", + "113 0.011991 9 \n", + "51 0.013662 10 \n", + "65 0.010990 11 \n", + "43 0.014474 12 \n", + "136 0.015874 13 \n", + "9 0.012997 14 \n", + "13 0.013260 15 \n", + "82 0.011839 16 \n", + "99 0.013279 17 \n", + "109 0.014090 18 \n", + "91 0.013442 19 \n", + "19 0.009896 20 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from sklearn.model_selection import RandomizedSearchCV\n", "import scipy.stats\n", @@ -128,9 +892,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('tfidfvectorizer',\n",
+       "                 TfidfVectorizer(max_df=0.3, min_df=5, ngram_range=(1, 3),\n",
+       "                                 sublinear_tf=True)),\n",
+       "                ('sgdclassifier',\n",
+       "                 SGDClassifier(alpha=0.0001386590973076251,\n",
+       "                               l1_ratio=0.7469804305005836, max_iter=100000,\n",
+       "                               penalty='elasticnet', tol=1e-05))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('tfidfvectorizer',\n", + " TfidfVectorizer(max_df=0.3, min_df=5, ngram_range=(1, 3),\n", + " sublinear_tf=True)),\n", + " ('sgdclassifier',\n", + " SGDClassifier(alpha=0.0001386590973076251,\n", + " l1_ratio=0.7469804305005836, max_iter=100000,\n", + " penalty='elasticnet', tol=1e-05))])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "model = create_pipeline()\n", "model.set_params(\n", @@ -144,9 +941,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " negative 0.41 0.17 0.24 132\n", + " neutral 0.73 0.88 0.79 465\n", + " positive 0.79 0.74 0.76 280\n", + "\n", + " accuracy 0.73 877\n", + " macro avg 0.64 0.60 0.60 877\n", + "weighted avg 0.70 0.73 0.70 877\n", + "\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "from sklearn import metrics\n", @@ -170,9 +996,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "There are 501 features for the`negative` class.\n", + " short: 4.8667\n", + " lower: 4.4908\n", + " fall: 4.3363\n", + " down: 4.2191\n", + " iwm: 4.1660\n", + " bhp: 3.1163\n", + " drop: 3.1113\n", + " bearish: 3.0749\n", + " fears: 2.8873\n", + " falls: 2.8422\n", + " sbux: 2.7157\n", + " rivals: 2.2257\n", + " puts: 2.1955\n", + " recalls: 2.1673\n", + " downgraded: 2.1668\n", + "\n", + "There are 1501 features for the`neutral` class.\n", + " is: 2.9445\n", + " electricity: 2.9423\n", + " includes: 2.9332\n", + " to the: 2.3651\n", + " will: 2.2602\n", + " eps in: 2.2093\n", + " to remain: 1.9904\n", + " sole: 1.9867\n", + " information: 1.9632\n", + " while: 1.9388\n", + " approximately: 1.8945\n", + " share capital: 1.8895\n", + " buy the: 1.8574\n", + " were: 1.8406\n", + " marketing: 1.8366\n", + "\n", + "There are 1495 features for the`positive` class.\n", + " increased: 6.4743\n", + " increase: 6.2415\n", + " positive: 6.2387\n", + " won: 6.0361\n", + " signed: 6.0156\n", + " grew: 5.7388\n", + " up from: 5.2212\n", + " rise: 4.9845\n", + " awarded: 4.5971\n", + " double: 4.3849\n", + " higher: 4.3683\n", + " buy: 4.3043\n", + " improved: 4.2427\n", + " breakout: 4.2076\n", + " good: 4.1502\n", + "\n" + ] + } + ], "source": [ "features = model.named_steps[\"tfidfvectorizer\"].get_feature_names_out()\n", "\n", @@ -191,9 +1075,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "('negative',\n", + " [('bearish', 0.3701555869078035),\n", + " ('share price', 0.13607210434349515),\n", + " ('tesla', 0.10278360011073003),\n", + " ('get', 0.06469031891901218),\n", + " ('back', 0.060203369146000676),\n", + " ('below', 0.05252493885654123),\n", + " ('moving', 0.033521891021244074),\n", + " ('price', 0.02861155787080013),\n", + " ('only', 0.021472501474463123),\n", + " ('there', 0.012862225410731364)])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "def predict(text: str):\n", " text = normalize(text)\n", @@ -234,17 +1139,40 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[38;5;39mFetching cached versions of financial-sentiment\u001b[0m\n", + "\u001b[38;5;39mCopying file for financial-sentiment-1\u001b[0m\n", + "\u001b[38;5;39mCompressing financial-sentiment-1\u001b[0m\n", + "\u001b[38;5;39mModel financial-sentiment uploaded with version 1\u001b[0m\n" + ] + }, + { + "data": { + "text/plain": [ + "'financial-sentiment:1'" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# todo: export the model" + "from great_ai import save_model\n", + "\n", + "save_model(model, 'financial-sentiment')" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3.10.4 64-bit", + "display_name": "Python 3.8.5 ('.env': venv)", "language": "python", "name": "python3" }, @@ -258,12 +1186,12 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.8.5" }, "orig_nbformat": 4, "vscode": { "interpreter": { - "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + "hash": "2d14168167fa54a6b45c0bc59cb2c3f9a595bd48203d3180b96450e9d825e160" } } },