Aprendizaje automático (numpy / matplotlib / scipy) notas de estudio

Dominio de tiempo a dominio de frecuencia-Transformada de Fourier
Dominio de frecuencia a dominio de tiempo-Transformada de Fourier inversa
CNN-Red neuronal convolucional

Clasificador fuerte: Regresión logística / SVM
Clasificador débil: Árbol de decisión

Regresión Regresión
continua
Clasificación discreta

El objetivo de los mínimos cuadrados: encontrar la suma de errores de mínimos cuadrados.

Regresión lineal:
KNN (algoritmo de vecino K)
cresta:
Lazo de regresión cresta :

Regresión logestic
NLL: probabilidad logarítmica negativa
En problemas de clasificación o regresión, la función de pérdida (función de costo) se usa generalmente como su función objetivo

ROC: característica de funcionamiento del receptor
AUC: área bajo la curva

/ *********************** /
Numpy 库
/ ********************* *** /
importar numpy como np

// La dimensión de un arreglo NumPy se llama rango, el rango de un arreglo unidimensional es 1, el rango de un arreglo bidimensional es 2, y así sucesivamente.
// En NumPy, cada matriz lineal se llama eje (eje), es decir, dimensiones (dimensiones). eje = 0, significa operar a lo largo del eje 0, es decir, operar en cada columna; eje = 1, significa operar a lo largo del 1er eje, es decir, operar en cada fila.

a = np.array (objeto de matriz, dtype = 'tipo de datos de elemento') // Forma una matriz
dt = np.dtype (objeto de elemento) // Ver el tipo de datos del objeto de elemento

Array object.shape // Devuelve el valor de fila y columna de la
matriz. Array object.shape = x // Cambia el valor de fila y columna de la matriz, cambiará el elemento array
a = array object. Reshape (m, n ) // Cambie el valor de fila y columna de la matriz, no cambiará la matriz de elementos

np.fromiter (objeto iterable, dtype, count) // Crea una matriz a partir del objeto iterable, count es la cantidad de datos leídos, el valor predeterminado es -1, es decir, lee todos los datos
np.arange (start, stop, step , dtype) // Genera una lista
np.linspace (start, stop, num, endpoint = True, restep = False, dtype = None) // Genera una secuencia aritmética
/ *
num es el número de elementos, el valor predeterminado es 50
endpoint is true Es la secuencia numérica que contiene el valor de stop. Por el contrario, no contiene el
espaciado de visualización en la matriz generada cuando restep es true. De lo contrario, no se muestra .// Este atributo generalmente no se usa
/
np.logspace (start, stop, num, endpoint, base, dtype) // Generar una secuencia geométrica
/

base es la proporción
común , el valor predeterminado es 10 secuencia, el valor de inicio es el inicio de la base , el valor final es la base de parada
* /

a [start: stop: step] // a es una matriz, esta declaración es para obtener los elementos de un objeto cuyo subíndice es de inicio a fin y el intervalo es step
/ *
dos puntos también se pueden escribir uno, si los tres los atributos no están escritos, es el valor predeterminado
* /
y = x [[0,1,2], [0,1,0]] // Tomar el elemento en la posición (0,0), (1,1), (2,0) en la matriz
b = a [1: 3, 1: 3] // Obtiene una matriz que consta de cuatro elementos (1,1), (1,2), (2,1), (2, 2)
c = a [1: 3, [1,2]] // El efecto es el mismo que el anterior
d = a […, 1:] //… significa todas las filas / columnas
a = x [x> 5] // El valor de retorno es el valor del elemento mayor que 5 Una matriz formada por elementos
x [[4,2,1,7]] // Índice de fantasía toma el valor basado en el valor de la matriz de índice como el índice de una determinada eje de la matriz de destino. Para usar una matriz entera unidimensional como índice, si el objetivo es una matriz unidimensional, el resultado del índice es el elemento en la posición correspondiente; si el objetivo es una matriz bidimensional, entonces es la fila correspondiente al subíndice.
x [[- 4, -2, -1, -7]] // Índice inverso, es decir, el 4º, 2, 1, 7º elemento o fila desde
abajo x [np.ix _ ([1,5,7 , 2], [0,3,1,2])] // Respectivamente tomar (1,0), (1,3), (1,1), (1,2), (5,0), ( 5,3) ... Elemento en posición

c = a * b // Si a.shape == b.shape, la función de esta declaración es obtener una matriz de posiciones correspondientes multiplicada por
Broadcast (Broadcast) es un cálculo numérico de matrices de diferentes formas (forma) por numpy Manera
a = np.array ([[0, 0, 0],
[10,10,10
],
[20,20,20] , [30,30,30]])
b = np.array ([1, 2,3]) // Suma 1, 2, 3 a los elementos correspondientes de cada fila donde b es un

aT // Obtiene la transposición del arreglo
np.transpose (a) // Obtiene la transposición del arreglo
para x en np.nditer (a): // Completa el acceso a los elementos del arreglo a
para el elemento en a. flat: // Para procesar cada elemento en la matriz, puede usar el atributo flat, que es un iterador de elemento de matriz
a.flat // un iterador de elemento de matriz
a.flatten () // devuelve una copia de la matriz y hace el copy La modificación no afectará a la matriz original
a.ravel () // Expandir la matriz en una matriz unidimensional, y la modificación afectará la matriz original
np.rollaxis (arr, axis, start) // Desplazar un eje específico hacia atrás a una posición específica, el valor predeterminado de inicio es cero, lo que significa desplazamiento completo.
np.swapaxes (arr, axis1, axis2) // Se usa para intercambiar los dos ejes de la matriz
a.ndim // Devuelve la dimensión de la matriz a
np.squeeze (arr, axis) // Elimina una dimensión de la forma de la entrada de matriz dada
np.concatenar ((a1, a2, ... ), eje) // a lo largo de un eje especificado que conecta dos o más matrices de la misma forma
np.stack (matrices, eje) // para la conexión del eje a lo largo del new array Sequence, requiere que los arrays tengan la misma forma
np.hstack (arrays, axis) // Es una variante de la función numpy.stack, que genera arrays apilando horizontalmente.
np.vstack (arrays, axis) // Es una variante de la función numpy.stack, que genera arrays apilando verticalmente.
np.split (ary, indices_or_sections, axis) // Divide la matriz en submatrices a lo largo de un eje específico
/ *
indices_or_sections: si es un número entero, usa el número para dividirlo en partes iguales, si es una matriz, se divide a lo largo de el eje Posición (abierto a la izquierda y cerrado a la derecha)
eje: la dimensión a lo largo de la cual hacer la tangente, el valor predeterminado es 0 y se divide horizontalmente. Cuando es 1, dividir verticalmente
* /
np.hsplit (ary, indices_or_sections) // Se usa para dividir la matriz horizontalmente, dividir la matriz original especificando el número de matrices de la misma forma que se devolverán
np.vsplit (ary, indices_or_sections ) // Dividir a lo largo del eje vertical, el método de división es el mismo que el uso de hsplit

np.resize (arr, shape) // devuelve una nueva matriz del tamaño especificado, si el tamaño de la nueva matriz es mayor que el tamaño original, contiene una copia de los elementos de la matriz original. (La fila o columna aparecerá repetidamente)
np.append (arr, values, axis = None) // Agrega un valor al final de la matriz. La operación de agregar asigna la matriz completa y copia la matriz original a la nueva matriz. El valor de retorno es siempre una matriz unidimensional
np.insert (arr, obj, values, axis) // Antes del índice dado, a lo largo del axis inserta el valor en la matriz de entrada. La función devuelve una nueva matriz. Además, si no se proporciona ningún eje, la matriz de entrada se expandirá.
/ *
obj inserta el índice del valor antes de él
/
np.delete (arr, obj, axis) // Regrese para eliminar la nueva matriz de la submatriz especificada de la matriz de entrada. Como en el caso de la función insert (), si no se proporciona el parámetro del eje, la matriz de entrada se expandirá.
/

obj: puede ser un segmento, un entero o una matriz de enteros
/
np.unique (arr, return_index, return_inverse, return_counts) // Se usa para eliminar elementos duplicados en la matriz.
/

return_index: si es verdadero, devuelve la posición (subíndice) del nuevo elemento de la lista en la lista anterior y guárdelo en forma de lista
return_inverse: si es verdadero, devuelve la posición (subíndice) del elemento de la lista anterior en el nuevo lista con Store
return_counts en forma de lista : si es verdadero, devuelve el número de apariciones de los elementos en la matriz de deduplicación en la matriz original
* /

np.bitwise_and (a, b) // Los elementos de las dos matrices pueden ser bit a bit y
np.bitwise_or (a, b) // Los elementos de las dos matrices pueden ser bit a bit o
np.invert (a, dtype = np. uint8) // Realice la operación de inversión de bits en los enteros en la matriz
np.binary_repr (a, width = 8) // El valor de retorno es la representación binaria de un número, la longitud es el ancho
np.left_shift (10,2) // Desplaza 10 a la izquierda en 2 bits
np.right_shift (40, 2) // Desplaza 40 a la izquierda en 2 lugares

np.sin (a np.pi / 180) // Función seno
np.arcsin (sin) // Función seno inverso
De manera similar, hay coseno, tangente, etc.
np.add (a, b)
np.subtract (a, b)
np.multiply (a, b)
np.divide (a, b)
/ función de

suma, resta, multiplicación y división, la matriz debe tener la misma forma o ajustarse a las reglas de difusión de matriz
* /
np.reciprocal (a) // devuelve el recíproco elemento-sabio del parámetro
np .power (a, b) // La función usa el elemento en la primera matriz de entrada como base y calcula su potencia al elemento correspondiente en la segunda matriz de entrada.
np.mod (a, b) // Calcula el resto después de la división de los elementos correspondientes en la matriz de entrada
np.amin (a, axis) // Se usa para calcular el valor mínimo de los elementos en la matriz a lo largo del eje especificado .
np.amax (a, axis) // Se utiliza para calcular el valor máximo de los elementos de la matriz a lo largo del eje especificado.
np.ptp (a, axis) // Calcula la diferencia entre el valor máximo y el valor mínimo de los elementos de la matriz (máximo-mínimo)
np.median (a, axis) // Se utiliza para calcular la mediana de los elementos en la matriz a (Mediana)
np.mean (a, eje) // Devuelve la media aritmética de los elementos de la matriz. Si se proporciona un eje, se calcula a lo largo de él.
np.average (a, axis, weights = b) // Calcula el promedio ponderado de los elementos en la matriz de acuerdo con los respectivos pesos dados en otra matriz, sumando los productos de los elementos correspondientes y dividiendo la suma por el peso Y para calcular el promedio ponderado
np.std (a) // Calcula la desviación estándar
np.var (a) // Calcula la varianza

np.sort (a, eje, tipo, orden)
/ *
eje: ordenar la matriz a lo largo de su eje, si ninguna matriz se expande, tipo a lo largo del último eje, eje = 0 ordenar por columna, eje = 1 ordenar por fila Ordenando
tipo : El orden predeterminado es 'clasificación rápida' (clasificación rápida)
: si la matriz contiene campos, es el campo que se va a ordenar
* /
np.argsort (a) // La función devuelve el valor de índice del valor de la matriz de pequeño a grande.
np.lexsort ((a, b)) // Se usa para ordenar múltiples secuencias. Piense en ello como ordenar una hoja de cálculo, cada columna representa una secuencia y se da prioridad a las columnas inferiores al ordenar. Es decir, la primera fila b, luego la fila a, el parámetro es una tupla
np.partition (a, 3) // coloca todos los elementos (incluidos los elementos repetidos) en la matriz a que sean más pequeños que el tercero al frente, y coloca el los más grandes en la parte posterior
np.partition (a, (1, 3)) // Los más pequeños que 1 están en el frente, los más grandes que 3 están en la parte posterior y los que están entre 1 y 3 están en el medio
[np .argpartition (arr, 2) [2]] // Encuentra el tercer más pequeño de la matriz (índice = 2)
arr [np.argpartition (arr, -2) [- 2]] // Encuentra el segundo más grande de la matriz (index = -2)
np.argmax / min (a, axis) // Devuelve el índice del elemento más grande y más pequeño a lo largo del eje dado, respectivamente.
np.nonzero (a) // Devuelve el índice del elemento distinto de cero en la matriz de entrada
np.where (condición, como objeto de matriz> 3) // Devuelve el índice del elemento en la matriz de entrada que cumple con el condición
np.extract (condition, x) // Extrae elementos de la matriz de acuerdo con una determinada condición y devuelve los elementos con condiciones completas

np.dot (a, b) // Para dos matrices unidimensionales, el cálculo es la suma de los productos de los elementos de subíndice correspondientes de las dos matrices (llamado producto interno en matemáticas); para matrices bidimensionales, el el cálculo es El producto matricial de dos matrices;
np.vdot (a, b) // Calcula el producto escalar de dos vectores. Si el primer parámetro es un número complejo, su número complejo conjugado se utilizará en el cálculo. Si el parámetro es una matriz multidimensional, se expandirá.
np.inner (a, b) // Devuelve el producto interior del vector de una matriz unidimensional. Para dimensiones superiores, devuelve el producto de la suma en el último eje.
np.matmul (a, b) // La función devuelve el producto matricial de dos matrices.
np.linalg.det (a) // La función calcula el determinante de la matriz de entrada.
np.linalg.solve (a) // La función da la solución de una ecuación lineal en forma de matriz.
np.linalg.inv (a) // La función calcula la matriz inversa multiplicativa de la matriz.

np.save (file, arr, allow_pickle = True, fix_imports = True) // Guarde la matriz en un archivo con extensión .npy.
/ *
archivo: El archivo a guardar, la extensión es .npy, si no hay extensión .npy al final de la ruta del archivo, la extensión se agregará automáticamente.
arr: la matriz que se guardará
allow_pickle: opcional, booleano, permite el uso de pepinillos de Python para guardar la matriz de objetos, pickle en Python se usa para serializar y deserializar el objeto antes de guardarlo en un archivo de disco o leerlo de un archivo de disco.
fix_imports: Opcional, para facilitar la lectura de los datos guardados por Python3 en Pyhton2.
* /
b = np.load ('outfile.npy') // Lea el contenido del archivo npy o npz
np.savez (file, * args, * kwds) // Guarde múltiples matrices en la extensión con npz File.
/

file: El archivo a guardar, la extensión es .npz, si no hay extensión .npz al final de la ruta del archivo, la extensión se agregará automáticamente.
args: La matriz que se guardará. Los parámetros de palabras clave se pueden usar para darle un nombre a la matriz. La matriz pasada por los parámetros que no son palabras clave se llamará automáticamente arr_0, arr_1,….
kwds: utilice el nombre de la palabra clave para guardar la matriz.
/
np.loadtxt (FILENAME, dtype = int, delimiter = '')
np.savetxt (FILENAME, a, fmt = "% d", delimiter = ",")
/ Es

almacenar los datos en un formato de archivo de texto simple, correspondientemente use la función loadtxt () para obtener los datos. El
delimitador de parámetros puede especificar varios delimitadores, funciones de conversión para columnas específicas y el número de filas que se deben omitir.
fmt = "% d" significa guardar como un entero
* /

/ ************************************ /
biblioteca numpy.matlib // biblioteca de matriz de Python
/ * * ********************************* /
np.matlib.empty (shape, dtype, order) // return A new matrix
np.matlib.zeros ((número de filas, número de columnas)) // La función crea una matriz rellena con 0.
np.matlib.ones ((número de filas, número de columnas)) // La función crea una matriz rellena con 1.
np.matlib.eye (n, M, k, dtype)
/

n: devuelve el número de filas de la matriz
M: devuelve el número de columnas de la matriz, el valor predeterminado es n
k: el índice de la diagonal, generalmente 0
dtype: tipo de datos
* /
np.matlib.identity (5, dtype) // devuelve una matriz de identidad con 5 filas y 5 columnas
np.matlib.rand ((número de filas, número de columnas)) // La función crea un matriz de un tamaño dado, y los datos se rellenan al azar.

/ /
Matplotlib // Biblioteca de trazado de Python
/
/
Importar matplotlib
desde matplotlib Importar pyplot AS plt

zhfont1 = matplotlib.font_manager.FontProperties (fname = "SimHei.ttf") // Establecer la fuente
plt.title ("Matplotlib demo") // El título de la imagen de la función
plt.xlabel ("título del eje x", fontproperties = zhfont1) / / texto del eje x
plt.ylabel ("título del eje y", fontproperties = zhfont1) // texto del eje y
plt.plot (x, y, "ob") // dibujo de la función, x, y se dividen en x , El valor del eje y, ob representa el círculo azul
plt.show () // Display
/ *
El significado de los parámetros en el gráfico:
Color: b-blue, g-green, r-red, c-cyan , m-product Rojo, y-amarillo, k-negro, w-blanco
estilo de línea: '-' línea continua, - 'guión' -. 'línea de guiones y puntos,': 'línea discontinua,'. 'punto marca, 'o' marca de círculo, 'v' marca de triángulo invertido, '^' marca de triángulo frontal, '*' marca de estrella, 'x' marca X
* /

plt.subplot (2, 1, 1) // Crea la primera tabla de subplot con una altura de 2 y un ancho de 1, que es la primera
plt.plot (x, y_sin) // Dibuja la primera
plt.subplot (2, 1 , 2) // Crea una segunda tabla de subplot con una altura de 2 y un ancho de 1, que es la segunda
plt.plot (x, y_cos) // Dibuja la segunda
plt.show () // Pon dos imágenes de función mostrado en la misma imagen

/ Dibujar un gráfico de barras /
plt.bar (x, y, align = 'center')
plt.bar (x2, y2, color = 'g', align = 'center')
plt.title ('Gráfico de barras')
plt .ylabel ('eje Y')
plt.xlabel ('eje X')
plt.show ()

// Convierta la imagen en una matriz bidimensional y muestre
plt.imshow (img)
plt.show ()

/ /
Scipy library python Scientific computing base
/
/
scipy library modules:
scipy.cluster vector quantization / K- scipy.constants significan constantes físicas y matemáticas
scipy.fftpack Transformada de Fourier scipy ... integrar procedimiento de integración
scipy.interpolar interpolación scipy .io datos entrada y salida
scipy.linalg programa de álgebra lineal scipy.ndimage paquete de imágenes n-dimensionales
scipy.odr regresión de distancia ortogonal scipy.optimize optimización
procesamiento de señales scipy.signal scipy.sparse matriz dispersa
scipy.spatial estructura y algoritmo de datos espaciales scipy. especial Cualquier especial función matemática
scipy.stats estadísticas

linalg.det (a) // Calcula el determinante de la matriz cuadrada a
linalg.inv (a) // Encuentra la inversa de la matriz a
sample_freq = fftpack.fftfreq (sig.size, d = time_step) // Calcula la frecuencia de muestreo de la señal sig
sig_fft = fftpack.fft (sig) // Calcule la transformada rápida de Fourier de sig
loc, std = stats.norm.fit (a) // Calcule la desviación media y estándar de una
res, err = integration.quad ( fun, a, b) // Integra la función fun en el intervalo [a, b], el primer valor devuelto es el resultado de la integración, el segundo valor devuelto es el valor de
errorintegration.dblquad (func, a, b, gfun, hfun): Calcula la integral doble. Los parámetros son el integrando (f (y, x)), el límite inferior de x, el límite superior de x, el límite inferior de y, y el límite superior de y
optimize.minimize ( func, x0, método): calcular el valor mínimo de la función escalar. Los parámetros son función escalar, valor inicial y método de optimización. Los métodos de optimización son: 'Nelder-Mead', 'Powell', 'CG', 'BFGS ',' Newton-CG ',' L -BFGS-B ',' TNC ',' COBYLA ',' SLSQP ',' dogleg ',' trust-ncg '
linalg.eig (a) // Calcula el vector de características de square matrix a
linalg.svd (a) // Descomposición de valores singulares de la matriz a
linalg.qr (a) // Descomposición QR de la matriz
linalg.solve (a, b) // Encuentra la solución de las ecuaciones a * x = b
x = np.random.normal (loc, scale, size) // Forme una distribución normal, los parámetros son la media, la desviación estándar, el tamaño
x.mean () // la media
x.std () // la desviación estándar
x. var () // varianza

Supongo que te gusta

Origin blog.csdn.net/zuzhiang/article/details/108788886
Recomendado
Clasificación