masteripper Δημοσ. 22 Απριλίου 2019 Μέλος Δημοσ. 22 Απριλίου 2019 Τελικά αυτά τα κολπάκια της Python δεν παίζονται Με αυτη την συναρτησούλα παίρνεις 1 πίνακα και βγάζεις τις γραμμικώς ανεξάρτητες γραμμές (Απο 416 με το ζόρι βρήκε 19 για 20 αγνώστους...αλλά το μεγάλο δείγμα είναι στις 60000+ οπότε υπάρχουν ελπίδες ) def LI_vecs(dim,mat): M=mat LI=[M[0]] for i in range(dim): tmp=[] for r in LI: tmp.append(r) tmp.append(M[i]) #set tmp=LI+[M[i]] if matrix_rank(tmp)>len(LI): #test if M[i] is linearly independent from all (row) vectors in LI LI.append(M[i]) #note that matrix_rank does not need to take in a square matrix return LI
parsifal Δημοσ. 22 Απριλίου 2019 Δημοσ. 22 Απριλίου 2019 1 ώρα πριν, albNik είπε Τα υποσυνολα απο ανεξαρτητες ειναι παααααρα πολλα (2^10000..) Γιατί έχω την εντύπωση ότι δεν είναι 2 στη n-οστή αλλά n! ;
albNik Δημοσ. 22 Απριλίου 2019 Δημοσ. 22 Απριλίου 2019 36 λεπτά πριν, parsifal είπε Γιατί έχω την εντύπωση ότι δεν είναι 2 στη n-οστή αλλά n! ; Τα υποσυνολα (δυαδες + τριαδες +τετραδες...) ειναι Ν ανα 1 + Ν ανα 2 +... Ν ανα Ν = 2^Ν Οπου Ν ανα Κ = Ν!/(Κ! (Ν-Κ)!) 1
pmav99 Δημοσ. 22 Απριλίου 2019 Δημοσ. 22 Απριλίου 2019 (επεξεργασμένο) 5 hours ago, albNik said: Υπαρχουν πααααρα πολλες διαφορετικες Ν. Στην γενική περίπτωση φυσικά έχεις δίκιο, αλλά αν ισχύει αυτό που που μας είπε ο @masteripper στην αρχή, ότι δηλαδή οι περισσότερες των συναρτήσεων (πχ 80%-90%) έχουν κοινή λύση, τότε δεν αποκλείεται με σχετικά λίγες επαναλήψεις να βρίσκεις ένα υποσύνολο με κοινή λύση. Και αν βρεις ένα υποσύνολο που έχει λύση, μετά είναι εύκολο να τεστάρεις ποιες εξισώσεις ικανοποιεί, μειώνοντας ακόμα περισσότερο των αριθμό των εξισώσεων για την επόμενη επανάληψη. That being said, κατά πάσα πιθανότητα το ποσοστό αυτό ήταν τόσο υψηλό γιατί είχε γραμμικά εξαρτημένες συναρτήσεις. Αν κρατήσει τις γραμμικά ανεξάρτητες δεν αποκλείεται να καταλήξει με μερικές δεκάδες εξισώσεων μόνο οπότε και σκέτο brute force θα δουλεύει. 4 hours ago, masteripper said: οπότε τώρα πρέπει να βρω πως θα διαβάζει τις γραμμές απο το .csv ...να ελέγχει ποιές γραμμές είναι γραμμικώς ανεξάρτητες και εφόσον δεν είναι να πετάει τις γραμμικές εξαρτημένες και να φορτώνει την επόμενη γραμμή απο το .csv...εως ότου φτάσει στο Ν των αγνώστων. Αυτά τα πράγματα γίνονται με vectors. Δεν διαβάζεις ένα ένα και ελέγχεις. Θα τελειώσεις του χρόνου έτσι. Θα βρεις κατευθείαν όλες τις γραμμικά ανεξάρτητες εξισώσεις. Πχ: import io import numpy as np import pandas as pd import sympy csv_file = io.StringIO(""" 0, 1, 0, 0 0, 0, 1, 0 0, 1, 1, 0 1, 0, 0, 1 """) equations = pd.read_csv(csv_file, header=None).values _, indices = sympy.Matrix(equations).T.rref() li_equations = equations[indices,:] To li_equations είναι το σύνολο με το οποίο δουλεύεις από εδώ και πέρα. Επεξ/σία 22 Απριλίου 2019 από pmav99 1
masteripper Δημοσ. 22 Απριλίου 2019 Μέλος Δημοσ. 22 Απριλίου 2019 (επεξεργασμένο) 1 ώρα πριν, pmav99 είπε Στην γενική περίπτωση φυσικά έχεις δίκιο, αλλά αν ισχύει αυτό που που μας είπε ο @masteripper στην αρχή, ότι δηλαδή οι περισσότερες των συναρτήσεων (πχ 80%-90%) έχουν κοινή λύση, τότε δεν αποκλείεται με σχετικά λίγες επαναλήψεις να βρίσκεις ένα υποσύνολο με κοινή λύση. Και αν βρεις ένα υποσύνολο που έχει λύση, μετά είναι εύκολο να τεστάρεις ποιες εξισώσεις ικανοποιεί, μειώνοντας ακόμα περισσότερο των αριθμό των εξισώσεων για την επόμενη επανάληψη. That being said, κατά πάσα πιθανότητα το ποσοστό αυτό ήταν τόσο υψηλό γιατί είχε γραμμικά εξαρτημένες συναρτήσεις. Αν κρατήσει τις γραμμικά ανεξάρτητες δεν αποκλείεται να καταλήξει με μερικές δεκάδες εξισώσεων μόνο οπότε και σκέτο brute force θα δουλεύει. Αυτά τα πράγματα γίνονται με vectors. Δεν διαβάζεις ένα ένα και ελέγχεις. Θα τελειώσεις του χρόνου έτσι. Θα βρεις κατευθείαν όλες τις γραμμικά ανεξάρτητες εξισώσεις. Πχ: import io import numpy as np import pandas as pd import sympy csv_file = io.StringIO(""" 0, 1, 0, 0 0, 0, 1, 0 0, 1, 1, 0 1, 0, 0, 1 """) equations = pd.read_csv(csv_file, header=None).values _, indices = sympy.Matrix(equations).T.rref() li_equations = equations[indices,:] To li_equations είναι το σύνολο με το οποίο δουλεύεις από εδώ και πέρα. Καλό αυτό ...είναι μια καλη ιδέα να πάρω τις γραμμικές ανεξάρτητες με την 1η... Επεξ/σία 22 Απριλίου 2019 από masteripper
Lanike71 Δημοσ. 23 Απριλίου 2019 Δημοσ. 23 Απριλίου 2019 Μόλις διάβασα το θέμα, ο νους μου πήγε σε machine learning και linear regression.
Fortistis Δημοσ. 23 Απριλίου 2019 Δημοσ. 23 Απριλίου 2019 2 λεπτά πριν, Lanike71 είπε Μόλις διάβασα το θέμα, ο νους μου πήγε σε machine learning και linear regression. Χωρίς regularization για τις αποδεκτές λύσεις, θα δώσει μικρό loss το οποίο δεν σημαίνει, κατ’ ανάγκη, λύση των εξισώσεων. Δηλαδή, θα βρει τους συντελεστές των αγνώστων που παράγουν σταθερούς όρους κοντά σε αυτούς που θα πρέπει να παραχθούν, για όλες τις εξισώσεις. Δεν υπάρχει εγγύηση ότι θα βρεθεί ακριβώς το σύνολο των συντελεστών που λύνουν το μέγιστο υποσύνολο των εξισώσεων. Εάν, π.χ., έχεις 1) ax + by = 101 2) ax + by = 1 3) ax + by = 3 και δεν έχεις κάτι παραπάνω από ένα απλό regression approach, τότε θα βρει την λύση για την 1) και δεν θα νοιαστεί για τις 2) και 3). Υ.Γ. Στο παραπάνω παράδειγμα, κανείς μπορεί να έχει αποδοτική προσέγγιση με απλές τεχνικές ρύθμισης του εύρους τιμών των δεδομένων. Όμως ο σκοπός του απλού αυτού παραδείγματος ήταν άλλος. Ελπίζω να έγινε κατανοητός. Υ.Γ.2 Γενικά η regression approach δεν είναι και η καλύτερη για το συγκεκριμένο πρόβλημα. Βασικά, θαρρώ πως δεν είναι ML πρόβλημα.
Lanike71 Δημοσ. 23 Απριλίου 2019 Δημοσ. 23 Απριλίου 2019 38 λεπτά πριν, Fortistis είπε Χωρίς regularization για τις αποδεκτές λύσεις, θα δώσει μικρό loss το οποίο δεν σημαίνει, κατ’ ανάγκη, λύση των εξισώσεων. Δηλαδή, θα βρει τους συντελεστές των αγνώστων που παράγουν σταθερούς όρους κοντά σε αυτούς που θα πρέπει να παραχθούν, για όλες τις εξισώσεις. Δεν υπάρχει εγγύηση ότι θα βρεθεί ακριβώς το σύνολο των συντελεστών που λύνουν το μέγιστο υποσύνολο των εξισώσεων. Εάν, π.χ., έχεις 1) ax + by = 101 2) ax + by = 1 3) ax + by = 3 και δεν έχεις κάτι παραπάνω από ένα απλό regression approach, τότε θα βρει την λύση για την 1) και δεν θα νοιαστεί για τις 2) και 3). Υ.Γ. Στο παραπάνω παράδειγμα, κανείς μπορεί να έχει αποδοτική προσέγγιση με απλές τεχνικές ρύθμισης του εύρους τιμών των δεδομένων. Όμως ο σκοπός του απλού αυτού παραδείγματος ήταν άλλος. Ελπίζω να έγινε κατανοητός. Υ.Γ.2 Γενικά η regression approach δεν είναι και η καλύτερη για το συγκεκριμένο πρόβλημα. Βασικά, θαρρώ πως δεν είναι ML πρόβλημα. Δεν αντιλέγω, αλλά ήταν η πρώτη εντύπωση μόλις διάβασα το "περίπου λύση". Ελπίζω να βρέθηκε άκρη.
masteripper Δημοσ. 23 Απριλίου 2019 Μέλος Δημοσ. 23 Απριλίου 2019 (επεξεργασμένο) 2 ώρες πριν, Lanike71 είπε Μόλις διάβασα το θέμα, ο νους μου πήγε σε machine learning και linear regression. Δεν είσαι μακριά....😁...αν και αφορά τα δεδομένα που τροφοδοτούν όχι το καθαυτό αλγόριθμο. Επεξ/σία 23 Απριλίου 2019 από masteripper
Lanike71 Δημοσ. 23 Απριλίου 2019 Δημοσ. 23 Απριλίου 2019 1 ώρα πριν, masteripper είπε Δεν είσαι μακριά....😁...αν και αφορά τα δεδομένα που τροφοδοτούν όχι το καθαυτό αλγόριθμο. Εντάξει. Να σου δώσω το paypal μου για το μερίδιο...😁
masteripper Δημοσ. 23 Απριλίου 2019 Μέλος Δημοσ. 23 Απριλίου 2019 16 λεπτά πριν, Lanike71 είπε Εντάξει. Να σου δώσω το paypal μου για το μερίδιο...😁 Αααα...μόνο ο Pmav προς το παρόν έχει δικαιώματα...έδωσε πολύ καλό κώδικα... το κακό είναι ότι είμαι ακόμα μακριά απο τον στόχο...
Lanike71 Δημοσ. 23 Απριλίου 2019 Δημοσ. 23 Απριλίου 2019 Εγώ νομίζω ότι οι συνθήκες ωρίμασαν για να δημιουργηθεί η πρώτη insomnia AI team...
masteripper Δημοσ. 23 Απριλίου 2019 Μέλος Δημοσ. 23 Απριλίου 2019 4 ώρες πριν, Lanike71 είπε Εγώ νομίζω ότι οι συνθήκες ωρίμασαν για να δημιουργηθεί η πρώτη insomnia AI team... και μετά θα σκοτωθούμε στο μοίρασμα.....😁..εκτος αν βάλουμε το ΑΙ να κάνει την μοιρασιά....😁
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα