Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.2 Practica. Análisis - Implementación y Prueba de Técnicas IA Aplicadas Al Web Mining
3.2 Practica. Análisis - Implementación y Prueba de Técnicas IA Aplicadas Al Web Mining
Equipo
Magdaleno Arroyo Dulce María
000-00- 4830
(JavaTPoint, 2022)
1.2. IMPLEMENTACIÓN DE LA TÉCNICA
def folder_create(images):
try:
folder_name = input("Ingrese el nombre del directorio destino: ")
os.mkdir(folder_name)
except:
print("Directorio existente con el mismo nombre")
folder_create()
download_images(images, folder_name)
def main(url):
r = requests.get(url)
soup = BeautifulSoup(r.text,'html.parser')
images = soup.findAll('img')
folder_create(images)
url = 'https://co.pinterest.com/rangertrop/pokemon/'
main(url)
url = 'https://co.pinterest.com/rangertrop/autos/'
main(url)
import cv2
import numpy as np
import os
import matplotlib.pyplot as plt
pokemon_directorio_ruta="C:\\MV\\Pokemon\\"
pokemon=[]
img_size=150
for img in os.listdir(pokemon_directorio_ruta):
img = cv2.imread(os.path.join(pokemon_directorio_ruta,img))
img_resize = cv2.resize(img,(img_size, img_size))
pokemon.append(img_resize)
autos_directorio_ruta="C:\\MV\\Autos\\"
autos=[]
img_size=150
for img in os.listdir(autos_directorio_ruta):
img = cv2.imread(os.path.join(autos_directorio_ruta,img))
img_resize = cv2.resize(img,(img_size, img_size))
autos.append(img_resize)
pokemon = np.array(pokemon)
print(pokemon.shape)
autos = np.array(autos)
print(autos.shape)
FASE 3. VALIDACIÓN DE IMÁGENES
print(pokemon[4].shape)
plt.figure()
plt.imshow(np.squeeze(pokemon[4]))
plt.colorbar()
plt.grid(False)
plt.show()
print(autos[4].shape)
plt.figure()
plt.imshow(np.squeeze(autos[4]))
plt.colorbar()
plt.grid(False)
plt.show()
FASE 4. CONCATENACIÓN DE IMÁGENES
imagenes = np.concatenate([pokemon, autos])
print(len(imagenes))
Imagen = np.array(imagenes)
print(Imagen.shape)
etiqueta_pokemon = np.repeat(0,35)
print(len(etiqueta_pokemon))
etiqueta_autos = np.repeat(1,32)
print(len(etiqueta_autos))
plt.figure(figsize=(10,10))
for i in range(20):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(Imagen[i])
plt.xlabel(class_name[Labels[i]])
plt.show()
FASE 6. APLICACIÓN DE TENSORFLOW
from __future__ import absolute_import, division, print_function,
unicode_literals
variable_name = ""
try:
%tensorflow_version 2.x
except Exception:
pass
import numpy as np
import matplotlib.pyplot as plt
print(tf.__version__)
plt.figure()
plt.imshow(Imagen[3])
plt.colorbar()
plt.grid(False)
plt.show()
predecir = model.predict(img)
print(predecir)
print(np.sum(predecir))
print(np.argmax(predecir))
print(class_name[np.argmax(predecir)])
img = Imagen[66]
print(img.shape)
img=(np.expand_dims(img,0))
print(img.shape)
plt.figure()
plt.imshow(Imagen[66])
plt.colorbar()
plt.grid(False)
plt.show()
predecir=model.predict(img)
print(predecir)
print(np.sum(predecir))
print(np.argmax(predecir))
print(class_name[np.argmax(predecir)])
rgb = Imagen[66]
gris = cv2.cvtColor(rgb, cv2.COLOR_BGR2GRAY)
plt.figure()
plt.imshow(gris)
plt.colorbar()
plt.grid(False)
plt.show()
Una tienda de videojuegos busca mejorar sus ventas adaptándose a los gustos
específicos de cada cliente, se ha pensado en métodos para poder sugerir juegos
que cumplan con los perfiles, género y diversión de nuestros clientes. Para ello se
utilizó como referencia (Mavuduru, 2020).
El resultado final será un título de juego que puede llegar a cumplir con los intereses
del cliente. El trabajo se divide en problema, justificación, metodología, se muestran
los resultados para llegar a la discusión y obtener las conclusiones.
PROBLEMA
La organización tiene una afiliación con Amazon para la venta de videojuegos según
demanda y peticiones. Últimamente se han tenido problema en adquirir juegos que
sean atractivos o generen mayor número de ventas, nuestros clientes exigen juegos
que se adapten a sus expectativas y gustos.
Los datos utilizados que se descargaron del sitio oficial de amazon por medio de
se definen en 2 matrices de la siguiente manera:
Archivo: Video_Games_Rating.csv
- reviewerID – Id del usuario, p.e. A2SUAM1J3GNN3B
- asin – Id del videojuego, p.e. 0000013714
- overall – calificación del juego
- unixReviewTime – tiempo de la revisión (unix time)
Archivo: meta_Video_Games.json
- asin – Id del videojuego, p.e. 0000013714
- title – nombre del juego
b. PREPARACIÓN DE LOS DATOS
c. MODELO SELECCIONADO
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
c. Cargar la data de ratings, editar el dataset de los juegos calificados por los
usuarios
ratings_data = pd.read_csv('Video_Games_Rating.csv',header=None)
ratings_data.set_axis(["idgame", "iduser", "rating", "timeunix"],axis=1,inplace=True)
ratings_data = ratings_data[["iduser", "idgame", "rating"]]
ratings_data.head(10)
Figura 1. Top 10 datos de calificaciones
import pandas as pd
df = pd.read_json ('
https://jmcauley.ucsd.edu/data/amazon_v2/categoryFilesSmall/Video_Games_5.json, lines=True)
df.to_csv ('new_video_games.csv', index = None)
df
Figura 2. Top 4 datos de juegos
Fuente. [1]
Fuente. [1]
En el caso de nuestro sistema de recomendación de videojuegos, el algoritmo SVD
representará la matriz de calificación como un producto de matrices que representan
los factores de los videojuegos y los factores del usuario, respectivamente.
trainset = data.build_full_trainset()
svd.fit(trainset)
Ahora que tenemos un modelo SVD entrenado, podemos usarlo para predecir la
calificación que un usuario asignaría a un videojuego dado un ID para el usuario
(uid) y un ID para el videojuego (iid). El siguiente código demuestra cómo hacer esto
con el método de predicción.
svd.predict(uid='A23JCKJ9AHXRZZ', iid='0439381673')
Prediction(uid='A23JCKJ9AHXRZZ', iid='0439381673', r_ui=None, est=3.3333777932271094,
details={'was_impossible': False})
Según el resultado anterior, podemos ver que el modelo predijo que este usuario
específico le daría una calificación de tres estrellas (aproximadamente) al
videojuego correspondiente a un IID de 0439381673. El modelo no recomienda
videojuegos directamente, pero podemos usar esta utilidad de predicción de
calificación para identificar qué videojuegos probablemente disfrutaría un usuario,
lo que nos permite justificar recomendarlos a un usuario.
import difflib
import random
"""
Returns some basic information about a game given the game id and the metadata dataframe.
"""
game_info = metadata[metadata['idgame'] == game_id][['idgame', 'title']]
return game_info.to_dict(orient='records')
"""
Generates a book recommendation for a user based on a rating threshold. Only
games with a predicted rating at or above the threshold will be recommended
"""
game_titles = list(metadata['title'].values)
random.shuffle(game_titles)