Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Franco Sebastián Liza
mn-tp2
Commits
c46d1631
Commit
c46d1631
authored
5 years ago
by
Franco Sebastián Liza
Browse files
Options
Download
Email Patches
Plain Diff
subiendo cosas a franquito
parent
2ca0c172
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
263 deletions
+59
-263
notebooks/Metodo_de_la_Potencia.ipynb
notebooks/Metodo_de_la_Potencia.ipynb
+38
-228
notebooks/knn.ipynb
notebooks/knn.ipynb
+20
-17
src/knn.cpp
src/knn.cpp
+1
-18
No files found.
notebooks/Metodo_de_la_Potencia.ipynb
View file @
c46d1631
...
...
@@ -2,51 +2,9 @@
"cells": [
{
"cell_type": "code",
"execution_count":
1
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-- The C compiler identification is GNU 7.4.0\n",
"-- The CXX compiler identification is GNU 7.4.0\n",
"-- Check for working C compiler: /usr/bin/cc\n",
"-- Check for working C compiler: /usr/bin/cc -- works\n",
"-- Detecting C compiler ABI info\n",
"-- Detecting C compiler ABI info - done\n",
"-- Detecting C compile features\n",
"-- Detecting C compile features - done\n",
"-- Check for working CXX compiler: /usr/bin/c++\n",
"-- Check for working CXX compiler: /usr/bin/c++ -- works\n",
"-- Detecting CXX compiler ABI info\n",
"-- Detecting CXX compiler ABI info - done\n",
"-- Detecting CXX compile features\n",
"-- Detecting CXX compile features - done\n",
"Release mode\n",
"-- Found PythonInterp: /home2/clinux01/.pyenv/versions/tp2/bin/python (found version \"3.6.5\") \n",
"-- Found PythonLibs: /home2/clinux01/.pyenv/versions/3.6.5/lib/libpython3.6m.a\n",
"-- pybind11 v2.3.dev0\n",
"-- Performing Test HAS_FLTO\n",
"-- Performing Test HAS_FLTO - Success\n",
"-- LTO enabled\n",
"CMAKE_INSTALL_PREFIX=/home2/clinux01/mn-tp2\n",
"-- Configuring done\n",
"-- Generating done\n",
"-- Build files have been written to: /home2/clinux01/mn-tp2\n",
"\u001b[35m\u001b[1mScanning dependencies of target sentiment\u001b[0m\n",
"[ 20%] \u001b[32mBuilding CXX object CMakeFiles/sentiment.dir/src/sentiment.cpp.o\u001b[0m\n",
"[ 40%] \u001b[32mBuilding CXX object CMakeFiles/sentiment.dir/src/knn.cpp.o\u001b[0m\n",
"[ 60%] \u001b[32mBuilding CXX object CMakeFiles/sentiment.dir/src/pca.cpp.o\u001b[0m\n",
"[ 80%] \u001b[32mBuilding CXX object CMakeFiles/sentiment.dir/src/eigen.cpp.o\u001b[0m\n",
"[100%] \u001b[32m\u001b[1mLinking CXX shared module sentiment.cpython-36m-x86_64-linux-gnu.so\u001b[0m\n",
"[100%] Built target sentiment\n",
"\u001b[36mInstall the project...\u001b[0m\n",
"-- Install configuration: \"Release\"\n",
"-- Installing: /home2/clinux01/mn-tp2/notebooks/sentiment.cpython-36m-x86_64-linux-gnu.so\n"
]
}
],
"outputs": [],
"source": [
"!cd .. && rm -rf CMakeFiles/ CMakeCache.txt sentiment.cpython-37m-x86_64-linux-gnu.so\n",
"!cd .. && cmake \\\n",
...
...
@@ -57,18 +15,9 @@
},
{
"cell_type": "code",
"execution_count":
2
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home2/clinux01/mn-tp2/notebooks\n",
"Python 3.6.5\n"
]
}
],
"outputs": [],
"source": [
"!pwd\n",
"!python --version\n",
...
...
@@ -86,15 +35,18 @@
},
{
"cell_type": "code",
"execution_count":
3
,
"execution_count":
null
,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import numpy.linalg as la\n",
"\n",
"A = np.random.rand(2,1000) #despues los dejo con 2 filas y 600 columnas\n",
"A = A.T@A\n",
"\n",
"A = np.eye(3)\n",
"#A= np.array([[1,0,0],[1,2,0],[0,0,1]])\n",
"#A = np.random.rand(1000,1000) #despues los dejo con 2 filas y 600 columnas\n",
"#A = A.T@A\n",
"#Esta matriz es al menos semi-simetrica definida positiva, por lo que tendra base de autovectores\n",
"#Por lo que es diagonalizable y el algoritmo del método de la potencia termina\n",
"autovaloresNP, autovectoresNP = la.eig(A)\n",
...
...
@@ -123,30 +75,9 @@
},
{
"cell_type": "code",
"execution_count":
4
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"probando con iteración 1\n",
"probando con iteración 2\n",
"probando con iteración 4\n",
"probando con iteración 8\n",
"probando con iteración 16\n",
"probando con iteración 32\n",
"probando con iteración 64\n",
"probando con iteración 128\n",
"probando con iteración 256\n",
"probando con iteración 512\n",
"probando con iteración 1024\n",
"end\n",
"CPU times: user 7min 53s, sys: 922 ms, total: 7min 54s\n",
"Wall time: 7min 52s\n"
]
}
],
"outputs": [],
"source": [
"%%time\n",
"eps = 10e-16\n",
...
...
@@ -162,6 +93,17 @@
"print(\"end\")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"inv = np.linalg.inv(autovectoresNuestros)\n",
"\n",
"print(autovectoresNuestros)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
...
...
@@ -171,30 +113,9 @@
},
{
"cell_type": "code",
"execution_count":
5
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"probando con iteración 1\n",
"probando con iteración 2\n",
"probando con iteración 4\n",
"probando con iteración 8\n",
"probando con iteración 16\n",
"probando con iteración 32\n",
"probando con iteración 64\n",
"probando con iteración 128\n",
"probando con iteración 256\n",
"probando con iteración 512\n",
"probando con iteración 1024\n",
"end\n",
"CPU times: user 7min 28s, sys: 812 ms, total: 7min 29s\n",
"Wall time: 7min 28s\n"
]
}
],
"outputs": [],
"source": [
"%%time\n",
"eps = 10e-10\n",
...
...
@@ -219,30 +140,9 @@
},
{
"cell_type": "code",
"execution_count":
6
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"probando con iteración 1\n",
"probando con iteración 2\n",
"probando con iteración 4\n",
"probando con iteración 8\n",
"probando con iteración 16\n",
"probando con iteración 32\n",
"probando con iteración 64\n",
"probando con iteración 128\n",
"probando con iteración 256\n",
"probando con iteración 512\n",
"probando con iteración 1024\n",
"end\n",
"CPU times: user 7min 19s, sys: 980 ms, total: 7min 20s\n",
"Wall time: 7min 18s\n"
]
}
],
"outputs": [],
"source": [
"%%time\n",
"eps = 10e-8\n",
...
...
@@ -267,30 +167,9 @@
},
{
"cell_type": "code",
"execution_count":
7
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"probando con iteración 1\n",
"probando con iteración 2\n",
"probando con iteración 4\n",
"probando con iteración 8\n",
"probando con iteración 16\n",
"probando con iteración 32\n",
"probando con iteración 64\n",
"probando con iteración 128\n",
"probando con iteración 256\n",
"probando con iteración 512\n",
"probando con iteración 1024\n",
"end\n",
"CPU times: user 10min 45s, sys: 1.79 s, total: 10min 47s\n",
"Wall time: 10min 44s\n"
]
}
],
"outputs": [],
"source": [
"%%time\n",
"eps = 10e-6\n",
...
...
@@ -315,30 +194,9 @@
},
{
"cell_type": "code",
"execution_count":
9
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"probando con iteración 1\n",
"probando con iteración 2\n",
"probando con iteración 4\n",
"probando con iteración 8\n",
"probando con iteración 16\n",
"probando con iteración 32\n",
"probando con iteración 64\n",
"probando con iteración 128\n",
"probando con iteración 256\n",
"probando con iteración 512\n",
"probando con iteración 1024\n",
"end\n",
"CPU times: user 9min 30s, sys: 1.44 s, total: 9min 32s\n",
"Wall time: 9min 29s\n"
]
}
],
"outputs": [],
"source": [
"%%time\n",
"eps = 10e-4\n",
...
...
@@ -363,30 +221,9 @@
},
{
"cell_type": "code",
"execution_count":
11
,
"execution_count":
null
,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"probando con iteración 1\n",
"probando con iteración 2\n",
"probando con iteración 4\n",
"probando con iteración 8\n",
"probando con iteración 16\n",
"probando con iteración 32\n",
"probando con iteración 64\n",
"probando con iteración 128\n",
"probando con iteración 256\n",
"probando con iteración 512\n",
"probando con iteración 1024\n",
"end\n",
"CPU times: user 6min 47s, sys: 688 ms, total: 6min 48s\n",
"Wall time: 6min 47s\n"
]
}
],
"outputs": [],
"source": [
"%%time\n",
"eps = 10e-2\n",
...
...
@@ -403,57 +240,30 @@
]
},
{
"cell_type": "code",
"execution_count": 12,
"cell_type": "markdown",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.plot(dsts)\n",
"plt.xlabel('eje x')\n",
"plt.ylabel('eje y')\n",
"plt.savefig('myplot.png', dpi=200)\n",
"plt.show()\n",
"#plt.close()\n"
]
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"xs"
]
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"autovaloresNuestros,"
]
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"autovectoresNuestros"
]
"source": []
},
{
"cell_type": "code",
...
...
This diff is collapsed.
Click to expand it.
notebooks/knn.ipynb
View file @
c46d1631
...
...
@@ -25,7 +25,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 1
78
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -36,6 +36,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"mkdir: cannot create directory ‘build’: File exists\n",
"-- The C compiler identification is GNU 7.4.0\n",
"-- The CXX compiler identification is GNU 7.4.0\n",
"-- Check for working C compiler: /usr/bin/cc\n",
...
...
@@ -87,7 +88,7 @@
},
{
"cell_type": "code",
"execution_count":
2
,
"execution_count":
179
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -112,7 +113,7 @@
},
{
"cell_type": "code",
"execution_count":
3
,
"execution_count":
180
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -123,6 +124,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n",
"tar: *.tar.gz: Cannot open: No such file or directory\n",
"tar: Error is not recoverable: exiting now\n",
"Cantidad de documentos: 12500\n"
...
...
@@ -143,7 +146,7 @@
},
{
"cell_type": "code",
"execution_count":
4
,
"execution_count":
181
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -224,7 +227,7 @@
"freq 2 "
]
},
"execution_count":
4
,
"execution_count":
181
,
"metadata": {},
"output_type": "execute_result"
}
...
...
@@ -235,7 +238,7 @@
},
{
"cell_type": "code",
"execution_count":
5
,
"execution_count":
182
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -264,7 +267,7 @@
},
{
"cell_type": "code",
"execution_count":
6
,
"execution_count":
183
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -288,7 +291,7 @@
},
{
"cell_type": "code",
"execution_count": 1
72
,
"execution_count": 1
93
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -299,8 +302,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 2.
26
s, sys:
2
8 ms, total: 2.
28
s\n",
"Wall time: 2.
28
s\n"
"CPU times: user 2.
38
s, sys:
4
8 ms, total: 2.
43
s\n",
"Wall time: 2.
43
s\n"
]
}
],
...
...
@@ -309,7 +312,7 @@
"import numpy as np\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
"\n",
"vectorizer = CountVectorizer(max_df=0.
1
, min_df=0.01, max_features=5000)\n",
"vectorizer = CountVectorizer(max_df=0.
2
, min_df=0.01, max_features=5000)\n",
"\n",
"vectorizer.fit(text_train)\n",
"\n",
...
...
@@ -322,7 +325,7 @@
},
{
"cell_type": "code",
"execution_count": 1
73
,
"execution_count": 1
94
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -337,7 +340,7 @@
"2100\n",
"6225\n",
"6225\n",
"(6225, 1
607
)\n"
"(6225, 1
721
)\n"
]
}
],
...
...
@@ -352,7 +355,7 @@
},
{
"cell_type": "code",
"execution_count": 1
74
,
"execution_count": 1
95
,
"metadata": {
"colab": {},
"colab_type": "code",
...
...
@@ -364,9 +367,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.76
03187250996016
\n",
"CPU times: user
54.2
s, sys: 1
20
ms, total:
54.3
s\n",
"Wall time:
54.1
s\n"
"Accuracy: 0.76
17529880478088
\n",
"CPU times: user
1min 6
s, sys: 1
68
ms, total:
1min 6
s\n",
"Wall time:
1min 6
s\n"
]
}
],
...
...
This diff is collapsed.
Click to expand it.
src/knn.cpp
View file @
c46d1631
#include <algorithm>
//#include <chrono>
#ifdef DEBUG
#include <iostream>
#endif
#include "knn.h"
#include <pybind11/pybind11.h>
#ifndef DEBUG_OUT
#ifdef DEBUG
#define DEBUG_OUT(message) std::cout << message << std::endl
#else
#define DEBUG_OUT(message)
#endif
#endif
using
namespace
std
;
namespace
py
=
pybind11
;
...
...
@@ -40,13 +30,6 @@ bool comp_tupla (const tuple<double,int>& i, const tuple<double,unsigned int>& j
double
KNNClassifier
::
_predict_row
(
Vector
row
,
unsigned
int
k
){
Vector
distancias
(
x
.
rows
());
//py::print(y(0,0));
//py::print("\n");
//py::print("filas");
//py::print(y.rows());
//py::print("Columnas");
//py::print(y.cols());
for
(
int
i
=
0
;
i
<
x
.
rows
();
++
i
){
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment