Starting from:

$30

Machine Learning-Homework 1 Solved

1.                     Write a Python program to count the number of strings where the string length is 3 or more and the first and last character are different from a given list of strings.

Input List : ['cabc', 'xyza', 'abbc', '13221', 'xyzk']

Output : 3

2.                     Write a Python program to get a list, sorted in decreasing order by the second element in each inner list from a list, using a 'lambda' function.

 Input List : [[2, 6], [1, 2], [3, 4], [5, 3], [4, 1]]

 Output : [[2, 6], [3, 4], [5, 3], [1, 2], [4, 1]]

* Select ONE arff file from e-class. Change it to csv file. The csv file must contain numbers and/or strings only, each of which is separated by commas. In dong so, you have to modify arff file by removing header part (% and @ part) of the data.

3. Write Python code for the following tasks

0) Convert your 'arff' file to 'csv' file, refer to the code in the site below.

   https://github.com/haloboy777/arfftocsv/blob/master/arffToCsv.py 1) read csvfile into a two dimension list (called “a_list”) using ‘csv’ module.

1
0
2
3
A
0
1
1
2
A
0
1
0
1
B
0
0
2
3
C
e.g.: csvfile=  a_list=[[1,0,2,3,‘A’], [0,1,1,2,‘A’], [0,1,0,1,‘B’], [0,0,2,3,‘C’]]

2) show the number of columns(attributes), number of rows(records) and number of classes (label), respectively.

1
0
2
3
A
0
1
1
2
A
0
1
0
1
B
0
0
2
3
C
e.g.: csvfile=

     output : number of columns 5, number of rows 4, number of class 3 3) write a Python program that shows the first 2 rows per class from the “a_list”.

1.1
1.2
A
0.7
0.5
A
2.1
0.5
A
5.9
0.7
B
6.1
0.8
B
5.9
0.8
B
e.g.: csvfile=

Output : “class A : [[1.1, 1.2], [0.7, 0.5]], class B : [[5.9, 0.7]. [6.1, 0.8]]

4) write a Python program which randomly shuffles ‘a_list’ data using 'random' module.

4. Using the “a_list” in question 3. write Python code for the following tasks 1) given two column(attribute) index numbers, write a function that return a two-dimensional list that have the values of the columns.

2) show the reversed elements of each list of q. 1) result. (We don’t actually change the values a_list) ex) q.1) output = [[0,1,2,0], [3,4,5,6]]  q.2) output = [[0,2,1,0], [6,5,4,3]]

5.   Using the “a_list”, write Python code for the following tasks 1) define a function “divide_train_test(in_list, prop)” function where    input: 1) in_list: a 2D list, 2) prop: proportion of training data    output: train_data (first “prop” percent of in_list), test_data (the rest of in_list) 2) run divide_train_test(a_list, prop) TWO times using prop=0.7, 0.9, respectively, and show the result.

   e.g.: divide_train_test([[1,2,3], [5,1,8], [8,5,2], [0,3,6], [1,7,3]], 0.8) returns

   [ [ [1,2,3], [5,1,8], [8,5,2] ], [ [0,3,6], [1,7,3] ] ]    # train_data                test_data

6.   Write Python code for the tasks.

1) define a function “min_max_avg_med” which takes a list of numbers and returns [minimum, maximum, average, median] of the list. (don't use any modules such as 'import statistics')

 e.g.: def min_max_avg_med(in_list):

2) Using ‘random’ module, randomly generate 9 integer numbers (the numbers are more than -10 and less than 10) and, calculate the minimum, maximum, average and median values of generated numbers using above “min_max_avg_med” function.

 e.g.: min_max_avg_med([-9,2,1,3,7,2,3,-7,-4]) returns [-9, 7, -0.222, 2]

3) define a function “equ_interval” which divides a value range into n equal intervals.

input: 1) list [min, max] of range, 2) number of intervals output: list of (equal distance) intervals

 e.g.: equ_interval([-4, 8], 3) returns [[-4,0], [0,4], [4,8]]

4) run equ_interval 2 times by using different values of list and number of intervals.

7. Write Python code for the following tasks.

1)                    define a function “no_of_class_values” which takes a two-dimensional list and class value (label), and returns other elements corresponding to class value.  e.g.: no_of_class_values([[1, 1, 1, 2, 'A'], [2, 4, 3, 'B'], [2, 3, 3, 3,'A']], 'A')  => return [[1, 1, 1, 2], [2, 3, 3, 3]]

no_of_class_values([[1, 1, 1, 2, 'A'], [2, 4, 3, 'B']], 'B') => return [2, 4, 3] no_of_class_values([[1, 1, 1, 2, 'A'], [2, 4, 3, 'B']], 'C') => return None

2)                    define a function “no_of_dis_val” which takes a list and returns the number of “distinct” values in the list. e.g.: a_list=[9,9,8,7,7,8]

     no_of_dis_val(a_list) returns 3 ==> 3 unique values      This means a_list contains 3 distinct values

3)                    for every attribute in “a_list” (except the class attribute), calculate the number of distinct values for each class, using q 1) and q 2).

c1
c2
c3
class
1.1
1.5
0.7
A
0.9
1.1
0.2
A
1.5
0.2
0.1
B
e.g.: csv_file=  output= A:5 B:3

     This means class A has 5 distinct values, and class B has 3 distinct values.

4) plot a graphic table(e.g.: bar graph) by your favorite color using matplotlib as follows: X axis: class names, Y axix: the number of distinct values.

Hand In 1) In your report

...

6. .Write Python code for the tasks... 1) define a function “min_max” ... <PROGRAM CODE> <== This is title put your program code segment for Q 6 1) here <RESULT> <== This is title put the screen dump of your program run for Q 6 1) here

2) randomly generate ... <PROGRAM CODE> <== This is title put your program code segment for Q 6 2) here <RESULT> <== This is title

put the screen dump of your program run here

...

2) upload the following files separately at e-class.    i) report file, ii) python program code

More products