Está en la página 1de 7

Laboratorio 8

Autor꞉ Semeion, Centro de Investigación de Ciencias de la Comunicación, Roma, Italia.


Fuente꞉ [UCI] (http꞉//archive.ics.uci.edu/ml/datasets/steel+plates+faults)
Cite꞉ Conjunto de datos proporcionado por Semeion, Centro de Investigación de Ciencias de la
Comunicación, Via Sersale 117, 00128, Roma, Italia.
Conjunto de datos de fallas de placas de acero Un conjunto de datos de fallas de placas de acero,
clasificadas en 7 tipos diferentes. El objetivo era entrenar el aprendizaje automático para el
reconocimiento automático de patrones.
El conjunto de datos consta de 27 características que describen cada falla (ubicación, tamaño, ...) y 7
características binarias que indican el tipo de falla (en 7꞉ Pastelería, Z_Scratch, K_Scatch, Manchas,
Suciedad, Golpes, Otras Fallas). Este último se usa comúnmente como un objetivo de clasificación
binaria (falla 'común' u 'otra').
Información de atributos
V1꞉ X_Minimum
V2꞉ X_Maximum
V3꞉ Y_Mínimo
V4꞉ Y_ Máximo
V5꞉ Pixels_Areas
V6꞉ X_Perimeter
V7꞉ Y_Perímetro
V8꞉ Suma_de_Luminosidad
V9꞉ Mínimo_de_Luminosidad
V10꞉ Máxima_de_Luminosidad
V11꞉ Longitud del transportador
V12꞉ TypeOfSteel_A300
V13꞉ TypeOfSteel_A400
V14꞉ Steel_Plate_Thickness
V15꞉ Edges_Index
V16꞉ índice_vacío
V17꞉ Square_Index
V18꞉ Outside_X_Index
V19꞉ Edges_X_Index
V20꞉ Edges_Y_Index
V21꞉ Outside_Global_Index
V22꞉ LogOfAreas
V23꞉ Log_X_Index
V24꞉ Log_Y_Index
V25꞉ Orientation_Index
V26꞉ Índice de Luminosidad
V27꞉ SigmoidOfAreas
V28꞉ pastelería
V29꞉ Z_Scratch
V30꞉ K_Scatch
V31꞉ manchas
V32꞉ suciedad
V33꞉ golpes
Class꞉ Otros_Fallas
Documentos relevantes
1.M Buscema, S Terzi, W Tastle, A New Meta‑Classifier, en NAFIPS 2010, Toronto (CANADÁ), 26‑28 de
julio de 2010, 978‑1‑4244‑7858‑6 / 10 © 2010 IEEE 2.M Buscema, MetaNet꞉ The Theory of
Independent Judges, in Substance Use & Maluse, 33 (2), 439‑461,1998
In [49]: import
numpy
as
np

import
pandas
as
pd


df_fall_placa_acero
=
pd.read_csv('php9xWOpn.csv',

sep=',')

df_fall_placa_acero.info()


<class
'pandas.core.frame.DataFrame'>

RangeIndex:
1941
entries,
0
to
1940

Data
columns
(total
34
columns):


#


Column

Non‑Null
Count

Dtype



‑‑‑

‑‑‑‑‑‑

‑‑‑‑‑‑‑‑‑‑‑‑‑‑

‑‑‑‑‑




0


V1





1941
non‑null


int64




1


V2





1941
non‑null


int64




2


V3





1941
non‑null


int64




3


V4





1941
non‑null


int64




4


V5





1941
non‑null


int64




5


V6





1941
non‑null


int64




6


V7





1941
non‑null


int64




7


V8





1941
non‑null


int64




8


V9





1941
non‑null


int64




9


V10




1941
non‑null


int64




10

V11




1941
non‑null


int64




11

V12




1941
non‑null


int64




12

V13




1941
non‑null


int64




13

V14




1941
non‑null


int64




14

V15




1941
non‑null


float64


15

V16




1941
non‑null


float64


16

V17




1941
non‑null


float64


17

V18




1941
non‑null


float64


18

V19




1941
non‑null


float64


19

V20




1941
non‑null


float64


20

V21




1941
non‑null


float64


21

V22




1941
non‑null


float64


22

V23




1941
non‑null


float64


23

V24




1941
non‑null


float64


24

V25




1941
non‑null


float64


25

V26




1941
non‑null


float64


26

V27




1941
non‑null


float64


27

V28




1941
non‑null


int64




28

V29




1941
non‑null


int64




29

V30




1941
non‑null


int64




30

V31




1941
non‑null


int64




31

V32




1941
non‑null


int64




32

V33




1941
non‑null


int64




33

Class


1941
non‑null


int64



dtypes:
float64(13),
int64(21)

memory
usage:
515.7
KB

In [50]: df_fall_placa_acero.head()


Out[50]: V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 ... V25 V26 V27 V28 V


0 42 50 270900 270944 267 17 44 24220 76 108 ... 0.8182 ‑0.2913 0.5822 1
1 645 651 2538079 2538108 108 10 30 11397 84 123 ... 0.7931 ‑0.1756 0.2984 1
2 829 835 1553913 1553931 71 8 19 7972 99 125 ... 0.6667 ‑0.1228 0.2150 1
3 853 860 369370 369415 176 13 45 18996 99 126 ... 0.8444 ‑0.1568 0.5212 1
4 1289 1306 498078 498335 2409 60 260 246930 37 126 ... 0.9338 ‑0.1992 1.0000 1
5 rows × 34 columns
Actividad
1. Encontrar el numero de bins con la tecnica de Sturges
2. Discretizacion por intervalos de igual amplitud de la variable "V9" (Grafico de Barras)
3. Discretizacion por cuantil de la variable "V19" (Grafico de barras)
4. Discretizacion por kmeans de la variable "V15" (Grafico de barras)
In [51]: columns_continuas
=
['V1','V2','V3','V4','V5','V6','V7',





'V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19','V20'






,'V21','V22','V23','V24','V25','V26','V27']


Descripción del laboratorio Actividades


1. Encontrar el numero de bins con la tecnica de Sturges
2. Discretizacion por intervalos de igual amplitud de la variable "V9" (Grafico de Barras) con los bins
de la tecnica sturges
3. Discretizacion por cuantil de la variable "V19" (Grafico de barras) con 4 bins
4. Discretizacion por kmeans de la variable "V15" (Grafico de barras) con 4 bins
Nota꞉ Las actividades 2,3 y 4 al finalizar de discretizar convertir en Dataframe para poder aplicar
groupby
Encontrar el numero de bins con la tecnica de Sturges
In [52]: from
sklearn.preprocessing
import
KBinsDiscretizer

import
math
as
m


In [53]: n=len(df_fall_placa_acero)


In [54]: sturges=int(round(1+
m.log2(n),0));print(sturges)

12


1. Discretizacion por intervalos de igual amplitud de la variable "V9" (Grafico de Barras) con los bins
de la tecnica sturge
In [55]: amplitud=
KBinsDiscretizer(n_bins=sturges,



























encode="ordinal",



























strategy="uniform")


In [56]: df_fall_placa_acero["V9"]
=
amplitud.fit_transform(df_fall_placa_acero[["V9"]])

In [61]: df_fall_placa_acero.groupby("V9").V9.count()

V9

Out[61]:
0.0





16

1.0




117

2.0




274

3.0




127

4.0




283

5.0




496

6.0




435

7.0




140

8.0





14

9.0





19

10.0




12

11.0





8

Name:
V9,
dtype:
int64

In [60]: df_fall_placa_acero.groupby("V9").V9.count()/len(df_fall_placa_acero)*100

V9

Out[60]:
0.0





0.824317

1.0





6.027821

2.0




14.116435

3.0





6.543019

4.0




14.580113

5.0




25.553838

6.0




22.411128

7.0





7.212777

8.0





0.721278

9.0





0.978877

10.0




0.618238

11.0




0.412159

Name:
V9,
dtype:
float64

In [62]: 
df_fall_placa_acero.head()


Out[62]: V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 ... V25 V26 V27 V28 V


0 42 50 270900 270944 267 17 44 24220 4.0 108 ... 0.8182 ‑0.2913 0.5822 1
1 645 651 2538079 2538108 108 10 30 11397 4.0 123 ... 0.7931 ‑0.1756 0.2984 1
2 829 835 1553913 1553931 71 8 19 7972 5.0 125 ... 0.6667 ‑0.1228 0.2150 1
3 853 860 369370 369415 176 13 45 18996 5.0 126 ... 0.8444 ‑0.1568 0.5212 1
4 1289 1306 498078 498335 2409 60 260 246930 2.0 126 ... 0.9338 ‑0.1992 1.0000 1
5 rows × 34 columns
In [63]: import
seaborn
as
sns

import
matplotlib.pyplot
as
plt

sns.boxplot(x=list(df_fall_placa_acero["V9"]))

plt.show()

1. Discretizacion por cuantil de la variable "V19" (Grafico de barras) con 4 bins
In [64]: cuartil
=
KBinsDiscretizer(n_bins=4,



























encode="ordinal",



























strategy="quantile")#discretizacion
de
intervalos
de
igual
fre

In [65]: df_fall_placa_acero["V19"]=cuartil.fit_transform(df_fall_placa_acero[["V19"]])


In [66]: df_fall_placa_acero.groupby("V19").V19.count()

V19

Out[66]:
0.0



485

1.0



479

2.0



470

3.0



507

Name:
V19,
dtype:
int64

In [67]: df_fall_placa_acero.head(n=3)


Out[67]: V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 ... V25 V26 V27 V28 V29 V


0 42 50 270900 270944 267 17 44 24220 4.0 108 ... 0.8182 ‑0.2913 0.5822 1 0
1 645 651 2538079 2538108 108 10 30 11397 4.0 123 ... 0.7931 ‑0.1756 0.2984 1 0
2 829 835 1553913 1553931 71 8 19 7972 5.0 125 ... 0.6667 ‑0.1228 0.2150 1 0
3 rows × 34 columns
In [68]: sns.boxplot(x=list(df_fall_placa_acero["V19"]))

plt.show()

1. Discretizacion por kmeans de la variable "V15" (Grafico de barras) con 4 bins
In [69]: kmeans=KBinsDiscretizer(n_bins=4,
#NUMERO
DE
CATEGORIAS
























encode="ordinal",
#ordinal
























strategy="kmeans")#estrategia
de
discretizacion


In [70]: df_fall_placa_acero["V15"]=kmeans.fit_transform(df_fall_placa_acero[["V15"]])


In [71]: df_fall_placa_acero.groupby("V15").V15.count()

V15

Out[71]:
0.0



867

1.0



413

2.0



326

3.0



335

Name:
V15,
dtype:
int64

In [46]: df_fall_placa_acero.head(n=3)


Out[46]: V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 ... V25 V26 V27 V28 V29 V


0 42 50 270900 270944 267 17 44 24220 4.0 108 ... 0.8182 ‑0.2913 0.5822 1 0
1 645 651 2538079 2538108 108 10 30 11397 4.0 123 ... 0.7931 ‑0.1756 0.2984 1 0
2 829 835 1553913 1553931 71 8 19 7972 5.0 125 ... 0.6667 ‑0.1228 0.2150 1 0
3 rows × 34 columns
In [47]: sns.boxplot(x=list(df_fall_placa_acero["V15"]))

plt.show()

In [ ]: 



También podría gustarte