Binary disorder challenge | Sololearn: Learn to code for FREE!
Novo curso! Todo programador deveria aprender IA generativa!
Experimente uma aula grƔtis
+ 3

Binary disorder challenge

https://code.sololearn.com/c81vUnzCoAP6/?ref=app Can I get a better, more elegant solution than what I do here i.e any way except instantiating my x as [[0.,0.][0.,0.]]? I hate that dot(float?) instantiation. Felt like cheating.

1st Mar 2021, 12:46 PM
Satrio Bayu Pradhipta
Satrio Bayu Pradhipta - avatar
21 Respostas
+ 8
To make it work i needed to change the input arrays to type character. So the total code goes like: y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] import numpy as np y_true=np.array(y_true ) y_true= y_true.astype(str) y_pred=np.array(y_pred ) y_pred=y_pred.astype(str) #y_true = y_true.reshape(-1, 1) #y_pred = y_pred.reshape(-1, 1) #print(y_true.shape) from sklearn.metrics import confusion_matrix print((confusion_matrix(y_pred, y_true, labels=['1', '0']))/1)
13th Mar 2021, 6:02 PM
Frank Kober
Frank Kober - avatar
+ 5
ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€” you can replace everything after your second line of code with these 2 lines. from sklearn.metrics import confusion_matrix print((confusion_matrix(y_pred, y_true, labels=['1', '0']))/1) the divided by one was just a lazy way to convert my answer to a float ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€” PS you can convert numpy arrays to float arrays with the dtype property. x = np.array([0, 0], [0, 0], dtype=ā€˜fā€™) if you have an array that you want to turn into a float array use the astype() method. arr = arr.astype(ā€˜fā€™) For reference here are the numpy dtypes: int ā€”ā€”ā€”ā€”ā€”ā€”ā€”- i bool ā€”ā€”ā€”ā€”ā€”ā€”- b unsigned int ā€”ā€”- u float ā€”ā€”ā€”ā€”ā€”ā€”ā€” f complex number - c object ā€”ā€”ā€”ā€”ā€”ā€” O string ā€”ā€”ā€”ā€”ā€”ā€”- S unicode string ā€”ā€” U void ā€”ā€”ā€”ā€”ā€”ā€”ā€”- V ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€” as for the long list of if statements you could us a ternary operator in a comprehension if you want to make it a one liner but it will still have the same functionality as your code so I wouldnā€™t say it was more elegant. ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”ā€”
4th Mar 2021, 10:33 PM
Ethan
Ethan - avatar
+ 4
Frank Kober the input type is character automatically in python. your list comprehension has x being casted to an int. just remove that and it will be a character already for you change it to: _____________________________ y_true = [x for x in input().split()] y_pred = [x for x in input().split()] from sklearn.metrics import confusion_matrix print((confusion_matrix(y_pred, y_true, labels=['1', '0']))/1) ______________________________
13th Mar 2021, 6:07 PM
Ethan
Ethan - avatar
+ 4
y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] from sklearn.metrics import confusion_matrix print((confusion_matrix(y_pred,y_true, labels=[1,0]))/1) It just that simple only 2 lines of code needed
12th Apr 2021, 10:36 AM
Pranav Hirani
Pranav Hirani - avatar
+ 2
y_true = [(x) for x in input().split()] y_pred = [(x) for x in input().split()] import numpy as np y_true=np.array(y_true ) y_true= y_true.astype(str) y_pred=np.array(y_pred ) y_pred=y_pred.astype(str) #y_true = y_true.reshape(-1, 1) #y_pred = y_pred.reshape(-1, 1) #print(y_true.shape) from sklearn.metrics import confusion_matrix print((confusion_matrix(y_pred, y_true, labels=['1', '0']))/1) This is the solution
8th Apr 2021, 7:04 AM
Kanaad
Kanaad - avatar
+ 2
Norika Gilbert it changes position and convert it into float
10th Jan 2022, 7:53 AM
Pranav Hirani
Pranav Hirani - avatar
+ 1
y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] from sklearn.metrics import confusion_matrix as cm print(cm(y_true,y_pred)[::-1,::-1].transpose().astype(float))
6th Mar 2022, 9:21 AM
Seyyed Soroush Mirzaei
+ 1
# not using sklearn import numpy as np y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] tp, tn, fp, fn = 0, 0, 0, 0 for i in range(len(y_true)): if y_true[i] == y_pred[i] & y_pred[i] == 1: tp += 1 if y_true[i] != y_pred[i] & y_pred[i] == 0: fn += 1 if y_true[i] == y_pred[i] & y_pred[i] == 0: tn += 1 if y_true[i] != y_pred[i] & y_pred[i] == 1: fp += 1 out = np.zeros((2,2)) out[0,0] = tp out[0,1] = fp out[1,0] = fn out[1,1] = tn print(out)
18th Mar 2022, 9:34 AM
Behrooz Ostadaghaee
Behrooz Ostadaghaee - avatar
+ 1
y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] from sklearn.metrics import confusion_matrix print(confusion_matrix(y_true, y_pred, labels=[1,0]).transpose().astype('float'))
18th Mar 2022, 9:40 AM
Behrooz Ostadaghaee
Behrooz Ostadaghaee - avatar
+ 1
import numpy as np y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] conf = list(zip(y_true, y_pred)) def confTuple(tupl, tr,pr): res = len([t[0] for t in tupl if t[0] == tr and t[1]==pr]) return res tp = confTuple(conf, 1,1) fp = confTuple(conf, 0,1) fn = confTuple(conf, 1,0) tn = confTuple(conf, 0,0) print(np.array([[tp,fp],[fn, tn]])/1)
16th Nov 2022, 9:46 AM
Andreas Strƶhlein
Andreas Strƶhlein - avatar
0
I have not encountered this quiz yet, but I am wondering why you only convert the thing to an array at the very end.
1st Mar 2021, 1:46 PM
Wilbur Jaywright
Wilbur Jaywright - avatar
0
Wilbur Jaywright No reason. It might work without array, but I side with err and just convert them into array because that's what the example show
1st Mar 2021, 1:48 PM
Satrio Bayu Pradhipta
Satrio Bayu Pradhipta - avatar
0
what I mean is, why donā€™t you start with an arrary right at the beginning? They have lots of good methods for mathematical operations like youā€™re doing, and are easy to initialize with the right shape and preset values.
1st Mar 2021, 2:04 PM
Wilbur Jaywright
Wilbur Jaywright - avatar
0
Wilbur Jaywright I'm not that comfortable with Numpy yet, so following how the data in the basic list flows is easier for me. With numpy I had to check web/tutorial just to ensure that I'm putting the right method/function. This one takes like 2-3 mins of mostly typing from phone keyboard without looking for outside sources
1st Mar 2021, 2:10 PM
Satrio Bayu Pradhipta
Satrio Bayu Pradhipta - avatar
0
Ethan Gallup šŸ‘
13th Mar 2021, 9:32 PM
Frank Kober
Frank Kober - avatar
0
y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] import numpy as np import pandas as pd Matrix=pd.DataFrame(data=np.zeros((2,2)),columns=[1,0],index=[1,0]) for i in range(len(y_true)): Matrix.loc[y_pred[i],y_true[i]]+=1 print(np.array(Matrix)) Without using confusion matrix
21st Nov 2021, 6:28 PM
ChrisL
0
What does the labels [1,0]/1 do? When I just did confusion_matrix( y_pred, y_true) i get (2,1,0,1)
9th Jan 2022, 7:11 PM
Norika Gilbert
0
y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] import numpy as np y_true=np.array(y_true ) y_true= y_true.astype(str) y_pred=np.array(y_pred ) y_pred=y_pred.astype(str) #y_true = y_true.reshape(-1, 1) #y_pred = y_pred.reshape(-1, 1) #print(y_true.shape) from sklearn.metrics import confusion_matrix print((confusion_matrix(y_pred, y_true, labels=['1', '0']))/1)
17th Jun 2022, 5:39 PM
Sri varshini R
Sri varshini R - avatar
0
import numpy as np import pandas as pd y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] #Variables x = 0 y = 0 True_Positives = [] True_Negatives = [] Pred_Positives = [] Pred_Negatives = [] #TP & TN for i in y_true: x += 1 if i == 1: True_Positives.append(x) else: True_Negatives.append(x) #FP & FN for i in y_pred: y += 1 if i == 1: Pred_Positives.append(y) else: Pred_Negatives.append(y) #Number of TP FP FN TN TP = len(list(set(True_Positives) & set(Pred_Positives))) FP = len(list(set(True_Negatives) & set(Pred_Positives))) FN = len(list(set(True_Positives) & set(Pred_Negatives))) TN = len(list(set(True_Negatives) & set(Pred_Negatives))) """ print("True_Positives: ", True_Positives) print("True_Negatives: ", True_Negatives) print("Pred_Positives: ", Pred_Positives) print("Pred_Negatives: ", Pred_Negatives) """ #Matrix lst = [TP, FP, FN, TN] arr = np.array(lst) arr_2d = arr.reshape(2, 2) print(arr_2d/1)
18th Jul 2022, 10:19 PM
Kerem DƜZENLİ