Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (1)

Tsukuba University: Kurs für maschinelles Lernen

https://ocw.tsukuba.ac.jp/course/systeminformation/machine_learning/ Dieser Kurs ist sehr leicht zu verstehen, da er für Studenten der Tsukuba-Universität öffentlich zugänglich ist. Es gibt ein Problem bei der Analyse mit Python von Zeit zu Zeit im Thema dieses Kurses, aber da der Programmteil dieses Kurses außerhalb des Geltungsbereichs liegt, gibt es keine besondere Erklärung und das Programm selbst wird nicht bereitgestellt. Der Quellcode kann im Video gesehen werden, ist aber nicht ordentlich, weil ich ihn nicht selbst verschieben kann. Also habe ich beschlossen, ein Programm zu erstellen, das das gleiche Ergebnis liefert.

Schreibniveau

Ich kenne Python und Pandas, aber was ist Scicit-Learn? Ich fange von diesem Level an. Da ich jedoch während meines Studiums die Methode der kleinsten Quadrate verwendet habe, gibt es kein Problem mit mathematischen Annahmen (obwohl ich den Berechnungsteil der Matrix vergessen habe).

Umgebung

Es läuft auf Docker, so dass es jederzeit und überall verwendet werden kann. Da das Matplot nicht so angezeigt werden kann, wie es ist, wird es auf png abgelegt. Wenn Sie es von diesem Github ablegen, ist die Umgebung bereit. https://github.com/legacyworld/sklearn-basic Der folgende .devcontainer ist für die Remoteentwicklung mit VS-Code erforderlich.

Herausforderung 1.4 Rückgabe der Weindaten

Übung 1.4 ist das erste Programm. Die Erklärung stammt aus etwa 49 Minuten der 2. (1) multiplen Regression. Ich erklärte aus ca. 43 Minuten, aber das Ergebnis ist nicht korrekt, da die Skalierung im Programm nicht erfolgt.

python:Homework_1.4.py


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
from sklearn.metrics import mean_squared_error
from sklearn import preprocessing

#scikit-Importieren Sie Weindaten von learn
df= pd.read_csv('winequality-red.csv',sep=';')
#Da die Zielwertqualität enthalten ist, erstellen Sie einen abgelegten Datenrahmen
df1 = df.drop(columns='quality')
y = df['quality'].values.reshape(-1,1)
scaler = preprocessing.StandardScaler)
#Für jede Spalte wird eine einfache Regression durchgeführt
for column in df1:
    x = df[column]
    fig = plt.figure()
    plt.xlabel(column)
    plt.ylabel('quality')
    plt.scatter(x,y)
    #In Matrix konvertieren
    X = x.values.reshape(-1,1)
    #Skalierung
    X_fit = scaler.fit_transform(X)
    model = linear_model.LinearRegression()
    model.fit(X_fit,y)
    plt.plot(x,model.predict(X_fit))
    mse = mean_squared_error(model.predict(X_fit),y)
    print(f"quality = {model.coef_[0][0]} * {column} + {model.intercept_[0]}")
    print(f"MSE: {mse}")
    filename = f"{column}.png "
    fig.savefig(filename)

#Multiple Regression
X = df1.values
X_fit = scaler.fit_transform(X)
model = linear_model.LinearRegression()
model.fit(X_fit,y)
print(model.coef_,model.intercept_)

Der Ort, an dem Sie definitiv stecken bleiben, wenn Sie sklearn verwenden, ist der Ort, an dem Sie eine Matrix erstellen. Sie werden diesen Fehler auf jeden Fall sehen.

ValueError: Expected 2D array, got 1D array instead:
array=[7.4 7.8 7.8 ... 6.3 5.9 6. ].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

Mal sehen, was das Problem ist.

X = x.values.reshape(-1,1)
print(f"Vor der Konvertierung{x.values}")
print(f"Nach der Konvertierung{X}")

Dann wird die Ausgabe wie folgt sein.

Vor der Konvertierung[ 9.4  9.8  9.8 ... 11.  10.2 11. ]
Nach der Konvertierung[[ 9.4]
 [ 9.8]
 [ 9.8]
 ...
 [11. ]
 [10.2]
 [11. ]]

Es wurde in ein zweidimensionales Array geändert. Danach wird die Berechnung tatsächlich durchgeführt und das Ergebnis erhalten. Das Diagramm wird als PNG mit dem Namen der Merkmalsmenge (fester Säuregehalt.png usw.) gespeichert. fixed acidity.png

Der letzte Teil der multiplen Regression wird für meine eigene Studie hinzugefügt.

Das Folgende ist das Ausführungsergebnis

[root@316e28b88f45 workspace]# python test.py
quality = 0.10014898994431619 * fixed acidity + 5.6360225140712945
MSE: 0.6417307196439609
quality = -0.3153038874367112 * volatile acidity + 5.6360225140712945
MSE: 0.5523439983981253
quality = 0.18275435128971876 * citric acid + 5.6360225140712945
MSE: 0.6183613869155018
quality = 0.0110857825729839 * residual sugar + 5.6360225140712945
MSE: 0.6516376452555722
quality = -0.10406844138289646 * chlorides + 5.6360225140712945
MSE: 0.6409302993389623
quality = -0.04089548993375638 * free sulfur dioxide + 5.6360225140712945
MSE: 0.6500880987339057
quality = -0.14943458718129748 * total sulfur dioxide + 5.6360225140712945
MSE: 0.6294298439847829
quality = -0.14121524469500035 * density + 5.636022514071298
MSE: 0.6318187944965589
quality = -0.046607526450713255 * pH + 5.6360225140712945
MSE: 0.6495882783089737
quality = 0.20295710475205553 * sulphates + 5.6360225140712945
MSE: 0.6105689534614908
quality = 0.3844171096080022 * alcohol + 5.6360225140712945
MSE: 0.503984025671457
[[ 0.04349735 -0.19396667 -0.03555254  0.02301871 -0.08818339  0.04560596
  -0.10735582 -0.03373717 -0.06384247  0.1552765   0.29424288]] [5.63602251]

Der Abschnitt ist derselbe, unabhängig davon, welche Daten verwendet werden. Da es sich um einen geschätzten Wert handelt, wenn keine Merkmalsmenge (= x) vorhanden ist, handelt es sich um einen einfachen Durchschnitt der "Qualität". aus diesem Ergebnis

Es war eine kleine Aufgabe, Wein zu studieren.

Recommended Posts

Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (17).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (5).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (16).
Kurs für maschinelles Lernen an der Tsukuba University: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (10).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (2).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (4).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript in die Aufgabe aufnehmen (12).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (1)
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (11).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (3).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (14).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (6).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen (15).
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen. (7) Erstellen Sie Ihre eigene Methode für den steilsten Abstieg
Kurs für maschinelles Lernen an der Tsukuba-Universität: Lernen Sie sklearn, während Sie das Python-Skript zu einem Teil der Aufgabe machen. (8) Erstellen Sie Ihre eigene stochastischste Methode für den steilsten Abstieg
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Bildersammlung Python-Skript zum Erstellen von Datensätzen für maschinelles Lernen
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
[Bildbuch zum maschinellen Lernen] Memo, wenn die Python-Übung am Ende des Buches ausgeführt wurde, während die Daten überprüft wurden
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2
Python & Machine Learning Study Memo: Vorbereitung der Umgebung
Notizen vom Anfang von Python 1 lernen
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Python-Grundkurs (Ende 15)
Python & Machine Learning Study Memo ③: Neuronales Netz
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
Notizen vom Anfang von Python 2 lernen
Python & Machine Learning Study Memo ⑥: Zahlenerkennung
Richten Sie die Anzahl der Stichproben zwischen Datenklassen für maschinelles Lernen mit Python aus
Maschinelles Lernen eines jungen Ingenieurs Teil 1
[Python] Lesen Sie den Quellcode von Flasche Teil 2
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Die Geschichte, dass die Lernkosten von Python niedrig sind
2016 Todai Mathematik mit Python gelöst
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
[Python] Lesen Sie den Quellcode von Flasche Teil 1
Über die Entwicklungsinhalte des maschinellen Lernens (Beispiel)
Maschinelles Lernen eines jungen Ingenieurs Teil 2
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
[Python + OpenCV] Malen Sie den transparenten Teil des Bildes weiß
Vorhersage der Zielzeit eines vollständigen Marathons mit maschinellem Lernen - Visual: Visualisierung von Daten mit Python-
Der erste Schritt des maschinellen Lernens ~ Für diejenigen, die versuchen möchten, mit Python zu implementieren ~
[CodeIQ] Ich habe die Wahrscheinlichkeitsverteilung von Würfeln geschrieben (aus dem CodeIQ-Mathematikkurs für maschinelles Lernen [Wahrscheinlichkeitsverteilung]).