Machine Learning Algorithms

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Thesty
User
Beiträge: 4
Registriert: Dienstag 3. September 2019, 11:35

Hallo zusammen,
ich arbeite für ein Uni-Projekt derzeit mit dem Pima Indian Diabetes Dataset und muss folgende Aufgabe bearbeiten:
Entscheiden Sie sich für einen geeigneten Algorithmus für maschinelles Lernen und trainieren Sie ihn an Ihren Daten, für drei verschiedene Eingabedaten:
a. X= reale Daten mit all ihren 8 Merkmalen (hier ist die Form Ihrer Daten (768,8))
b. X= Daten mit zwei am besten ausgewählten Merkmalen (hier ist die Form Ihrer Daten (768,2))
c. X= Daten mit zwei RANDOM-Merkmalen (hier ist die Form Ihrer Daten (768,2))

Den ersten Teil des Projekts, in dem ich die ein X und ein y initialisiert habe und eine Methode programmiert habe, die die zwei wichtigsten Datenpunkte unterscheidet, habe ich problemlos hinbekommen. Der Code, den ich bislang habe ist der hier:

Code: Alles auswählen

import pandas as pd

df = pd.read_csv (r'C:\Users\Thesty\Desktop\pima-indian-diabetes-dataset.csv')  
print (df)

X = np.array(df)[:,0:7]
y= np.array(df)[:,8]

scaler=StandardScaler() 
scaler.fit(X)

X_scaled=scaler.transform(X) 

pca=PCA(n_components=2) 
pca.fit(X_scaled)
X_pca=pca.transform(X_scaled)

print("Original data shape: {}".format(X_scaled.shape))
print("Reduced data shape: {}".format(X_pca.shape))

plt.plot(X_pca,"ro")
plt.show()


Für den zweiten Teil der Aufgabe fehlt mir leider ein konkreter Ansatz, da wir in dem Seminar nur KNN als supervised learning algorithm kennengelernt haben und der zum Bearbeiten der Aufgabe unpassend erscheint.

Falls jemand von euch eine Idee hat, welchen Algorithmus man für diese Aufgabe nehmen kann, würde ich mich sehr freuen!
Thesty
User
Beiträge: 4
Registriert: Dienstag 3. September 2019, 11:35

Ich mich in der Zwischenzeit selbst noch damit beschäftigt und einige Algorithmen ausprobiert und bekomme mit dem folgenden Code Ergebnisse:

Code: Alles auswählen

X_train, X_test, y_train, y_test = train_test_split(X,y)
clf=svm.SVC(kernel="linear")
clf.fit(X_train,y_train)

y_pred=clf.predict(X_test)
print(X_test)
print(y_pred)
print(y_test)

print("The accuracy is: {}".format (metrics.accuracy_score(y_test,y_pred)))

X_train, X_test, y_train, y_test = train_test_split(X_pca,y)
clf=svm.SVC(kernel="linear")
clf.fit(X_train,y_train)

y_pred=clf.predict(X_test)
print(X_test)
print(y_pred)
print(y_test)

print("The accuracy for the two best features is: {}".format (metrics.accuracy_score(y_test,y_pred)))

Ich bin mir leider unsicher, ob das der richtige Lösungsweg ist. Vielleicht hat jemand von euch ein bisschen mehr Ahnung und kann mir sagen, ob der Ansatz richtig ist :)

X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=2)
clf=svm.SVC(kernel="linear")
clf.fit(X_train,y_train)

y_pred=clf.predict(X_test)
print(X_test)
print(y_pred)
print(y_test)

print("The accuracy for the two random features is: {}".format (metrics.accuracy_score(y_test,y_pred)))[\Code]
Benutzeravatar
ThomasL
User
Beiträge: 1377
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Bei diesem Dataset handelt es sich ja um eine Klassifikation, die Klasse ist in der letzten Spalte. (0 oder 1)
Dazu finde ich dieses Video: https://www.youtube.com/watch?v=U1JIo8JSuYo
Und dieses Tutorial ist auch ganz gut: https://towardsdatascience.com/solving- ... 0ab6b071d2
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Thesty
User
Beiträge: 4
Registriert: Dienstag 3. September 2019, 11:35

Danke für deine Antwort, ich werde es mir gleich angucken :)
Antworten