@@ -2,72 +2,94 @@ import { assert } from "chai"
22import { LabelEncoder , OneHotEncoder } from "../../src/preprocessing/encodings"
33import { Series } from "../../src/core/series"
44
5- describe ( "Encodings" , function ( ) {
5+ describe ( "Encodings" , function ( ) {
66
7- describe ( "LabelEncoder" , function ( ) {
7+ describe ( "LabelEncoder" , function ( ) {
88
9- it ( "test the label encoding on array" , function ( ) {
10- let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
9+ it ( "test the label encoding on array" , function ( ) {
10+ let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
1111 let encode = new LabelEncoder ( )
1212 let fit_data = [
1313 0 , 1 , 2 , 0 ,
1414 1 , 2 , 2 , 1
15- ]
16- assert . deepEqual ( encode . fit ( data ) . values , fit_data )
17- assert . deepEqual ( encode . transform ( [ "dog" , "man" ] ) . values , [ 0 , 2 ] )
15+ ]
16+ assert . deepEqual ( encode . fit ( data ) . values , fit_data )
17+ assert . deepEqual ( encode . transform ( [ "dog" , "man" ] ) . values , [ 0 , 2 ] )
1818 } ) ;
19- it ( "test the label encoding on Series" , function ( ) {
20- let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
19+ it ( "test the label encoding on Series" , function ( ) {
20+ let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
2121 let series = new Series ( data )
2222 let encode = new LabelEncoder ( )
2323 let fit_data = [
2424 0 , 1 , 2 , 0 ,
2525 1 , 2 , 2 , 1
26- ]
27- assert . deepEqual ( encode . fit ( series ) . values , fit_data )
28- assert . deepEqual ( encode . transform ( [ "dog" , "man" ] ) . values , [ 0 , 2 ] )
26+ ]
27+ assert . deepEqual ( encode . fit ( series ) . values , fit_data )
28+ assert . deepEqual ( encode . transform ( [ "dog" , "man" ] ) . values , [ 0 , 2 ] )
2929 } ) ;
30+ it ( "label encoding directly from a Series" , function ( ) {
31+ let data = new Series ( [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ] )
32+ let to_label_encode = new Series ( [ "dog" , "man" ] )
33+ let encode = new LabelEncoder ( )
34+ let fit_data = [
35+ 0 , 1 , 2 , 0 ,
36+ 1 , 2 , 2 , 1
37+ ]
38+ assert . deepEqual ( encode . fit ( data ) . values , fit_data )
39+ assert . deepEqual ( encode . transform ( to_label_encode ) . values , [ 0 , 2 ] )
40+ } ) ;
41+ // it("Label encoding on Series", function () {
42+ // let data = ["dog", "cat", "man", "dog", "cat", "man", "man", "cat"]
43+ // let series = new Series(data)
44+ // let encode = new LabelEncoder()
45+ // let fit_data = [
46+ // 0, 1, 2, 0,
47+ // 1, 2, 2, 1
48+ // ]
49+ // assert.deepEqual(encode.fit(series).values, fit_data)
50+ // assert.deepEqual(encode.transform(["dog", "man"]).values, [0, 2])
51+ // });
3052
3153 } )
3254
33- describe ( "OneHotEncoder" , function ( ) {
55+ describe ( "OneHotEncoder" , function ( ) {
3456
35- it ( "test onehotencoding on array" , function ( ) {
36- let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
57+ it ( "test onehotencoding on array" , function ( ) {
58+ let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
3759 let encode = new OneHotEncoder ( )
3860 let fit_data = [
39- [ 1 , 0 , 0 ] ,
40- [ 0 , 1 , 0 ] ,
41- [ 0 , 0 , 1 ] ,
42- [ 1 , 0 , 0 ] ,
43- [ 0 , 1 , 0 ] ,
44- [ 0 , 0 , 1 ] ,
45- [ 0 , 0 , 1 ] ,
46- [ 0 , 1 , 0 ]
47- ]
48- let transform_data = [ [ 0 , 0 , 1 ] , [ 0 , 1 , 0 ] ]
61+ [ 1 , 0 , 0 ] ,
62+ [ 0 , 1 , 0 ] ,
63+ [ 0 , 0 , 1 ] ,
64+ [ 1 , 0 , 0 ] ,
65+ [ 0 , 1 , 0 ] ,
66+ [ 0 , 0 , 1 ] ,
67+ [ 0 , 0 , 1 ] ,
68+ [ 0 , 1 , 0 ]
69+ ]
70+ let transform_data = [ [ 0 , 0 , 1 ] , [ 0 , 1 , 0 ] ]
4971
5072 assert . deepEqual ( encode . fit ( data ) . values , fit_data ) ;
51- assert . deepEqual ( encode . transform ( [ "man" , "cat" ] ) . values , transform_data )
73+ assert . deepEqual ( encode . transform ( [ "man" , "cat" ] ) . values , transform_data )
5274 } )
53- it ( "test onehotencoding on Series" , function ( ) {
54- let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
75+ it ( "test onehotencoding on Series" , function ( ) {
76+ let data = [ "dog" , "cat" , "man" , "dog" , "cat" , "man" , "man" , "cat" ]
5577 let series = new Series ( data )
5678 let encode = new OneHotEncoder ( )
5779 let fit_data = [
58- [ 1 , 0 , 0 ] ,
59- [ 0 , 1 , 0 ] ,
60- [ 0 , 0 , 1 ] ,
61- [ 1 , 0 , 0 ] ,
62- [ 0 , 1 , 0 ] ,
63- [ 0 , 0 , 1 ] ,
64- [ 0 , 0 , 1 ] ,
65- [ 0 , 1 , 0 ]
66- ]
67- let transform_data = [ [ 0 , 0 , 1 ] , [ 0 , 1 , 0 ] ]
80+ [ 1 , 0 , 0 ] ,
81+ [ 0 , 1 , 0 ] ,
82+ [ 0 , 0 , 1 ] ,
83+ [ 1 , 0 , 0 ] ,
84+ [ 0 , 1 , 0 ] ,
85+ [ 0 , 0 , 1 ] ,
86+ [ 0 , 0 , 1 ] ,
87+ [ 0 , 1 , 0 ]
88+ ]
89+ let transform_data = [ [ 0 , 0 , 1 ] , [ 0 , 1 , 0 ] ]
6890
6991 assert . deepEqual ( encode . fit ( series ) . values , fit_data ) ;
70- assert . deepEqual ( encode . transform ( [ "man" , "cat" ] ) . values , transform_data )
92+ assert . deepEqual ( encode . transform ( new Series ( [ "man" , "cat" ] ) ) . values , transform_data )
7193 } )
7294 } ) ;
7395
0 commit comments