Wie gibt ich eine Matrix ein und empfangen Sie Wert (oder Array von Werten) mit maschinellem Lernen in Python?
Posted: 16 Apr 2025, 09:40
Ich habe eine Reihe von binären 8x15 -Matrixen und ich möchte bestimmen, welcher Index (Zeile und Spalte) der Matrix das Muster durchbricht.
Code: Select all
1 1 1 1 0
1 1 1 1 0
1 1 0 1 0
1 1 1 0 0
1 1 1 0 0
< /code>
Diese Matrix sollte [3, 3] zurückgeben, da diese Position das Muster des Füllens der Matrixspalte mit 1. < /p>
Das folgende Beispiel sollte zurückgeben [3, 1]: < /p>
1 1 1 1 0
1 1 1 1 0
0 1 1 0 0
1 1 1 0 0
1 1 1 0 0
< /code>
Das folgende Beispiel zeigt dieses Problem jedoch nicht, daher sollte es [-1, -1] oder etwas (Vorschläge?) zurückgeben: < /p>
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 0 0
< /code>
Wie soll ich dieses Problem mit maschinellem Lernen angehen? State Result
0 [[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]... [-1, -1]
1 [[1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1]... [-1, -1]
2 [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]... [-1, -1]
3 [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]... [-1, -1]
4 [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]... [-1, -1]
< /code>
dTypes: < /p>
State object
Result object
dtype: object
< /code>
Ein Eintrag des obigen Datenrahmens hätte die erste Spalte mit einem Wert wie: < /p>
[[1, 1, 1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 0, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0, 0]]
< /code>
und seine zweite Spalte hätte den Wert [6, 3].X = states_data.drop(columns=['Result'])
y = states_data[['Result']]
< /code>
Danach habe ich versucht, DecisionTreeClassifier mit Sklearn zu verwenden, um das Problem zu lösen: < /p>
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
X_train = X_train.reset_index(drop=True)
X_test = X_test.reset_index(drop=True)
y_train = y_train.reset_index(drop=True)
y_test = y_test.reset_index(drop=True)
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
predictions = pd.DataFrame(predictions, columns = ['Result'])
score = accuracy_score(y_test['Result'], predictions['Result'])
print(score)
< /code>
In dieser Zeile jedoch: < /p>
model.fit(X_train, y_train)
< /code>
Ich erhalte diesen Fehler: < /p>
TypeError: float() argument must be a string or a number, not 'list'
< /code>
Kann mir jemand helfen? Was mache ich falsch?State object
dtype: object
< /code>
y_train.dtypes retektiert: < /p>
Result object
dtype: object
< /code>
Beide x_train.shape und y_train.shape return: < /p>
(543, 1)