Letztes Mal hat die in scikit-learn implementierte Methode des maschinellen Lernens grob geschrieben, aber es scheint, dass es ab heute eine gewisse Nachfrage gibt. Während ich Beispielcode für maschinelles Lernen mit Scikit-Learn schreibe, möchte ich mich dem Verständnis und der Praxis der Methode nähern.
Zunächst werde ich ein Beispiel für das Clustering mit der K-Mittelungsmethode geben, das auch in Zurück durchgeführt wurde.
Die K-Mittelungsmethode ist eine der grundlegenden Methoden für das Clustering. Sie ist einfach, arbeitet mit hoher Geschwindigkeit und ist ideal für den Einstieg. Ich empfehle, die Operation jedes Mal zu erklären, aber hier ist leicht zu verstehen.
Aktienkursdaten werden weiterhin als Ziel für das Clustering verwendet.
Aktienkursdaten
Zwischen der Unternehmensleistung und den Aktienkursen besteht ein enger Zusammenhang. Es wird gesagt, dass zwischen den beiden tatsächlich eine Lücke von etwa sechs Monaten bis drei Jahren besteht. Das liegt daran, dass Anleger in die zukünftige Wertentwicklung investieren.
Mit anderen Worten, zukünftige Geschäftsergebnisse wurden bereits in den Aktienkurs einbezogen. Wenn Sie beispielsweise IT-Investitionen und deren Nachfrage prognostizieren, können Sie sich eine einfache Vertriebsstrategie vorstellen, bei der die IT-Nachfrage auch in Bereichen erwartet wird, in denen die Geschäftsleistung steigt.
Dieses Mal werde ich die Daten der folgenden Unternehmen analysieren. Beide sind Unternehmen in der Nähe unseres Unternehmens (DTS).
Marke | Name der Firma |
---|---|
9682 | DTS |
9742 | Ines |
9613 | NTT-Daten |
2327 | Nippon Steel & Sumitomo Metal Solutions |
9640 | Saison Informationssysteme |
3626 | IT-Beteiligungen |
2317 | Systema |
4684 | Obic |
9739 | NSW |
4726 | Softbank-Technologie |
4307 | Nomura Forschungsinstitut |
9719 | SCSK |
4793 | Fujitsu BSC |
4812 | Internationaler Informationsdienst von Dentsu |
8056 | Japan Unisys |
Die Rendite in der Finanzwelt bezieht sich normalerweise auf eine prozentuale Änderung des Vermögenspreises ab einem Tag. Ein einfacher Rückgabeindex kann mit Pandas wie folgt gefunden werden:
returns = pd.Series(close).pct_change() #Finden Sie die Rate der Zunahme / Abnahme
ret_index = (1 + returns).cumprod() #Finden Sie das kumulative Produkt
ret_index[0] = 1 #Erster Wert 1.Auf 0 setzen
Wenn Sie sich auf mehrere Unternehmen konzentrieren, wird der Renditeindex verwendet, um zu messen, wie sich der Wert des Vermögenswerts ändert, wobei 1 basierend auf dem Preis eines Tages festgelegt wird.
Lassen Sie uns beispielsweise den Rückgabeindex für die letzten 30 Tage ab dem Datum des Schreibens dieses Artikels ermitteln.
#Lesen Sie Zeitreihendaten aus der CSV-Datei
df = pd.read_csv(csvfile,
index_col=0, parse_dates=True)
df = df[-30:] #Letzte 30 Tage
#Liste für den Rückgabeindex
indexes = get_ret_index(df)['ret_index'].values.tolist()
#DTS anzeigen
if stock == "9682":
ts = df.index.values
for t, v in zip(ts, indexes):
print(t,v)
#=>
# 2015-02-23 1.0
# 2015-02-24 1.010054844606947
# 2015-02-25 1.020109689213894
# 2015-02-26 1.0351919561243146
# 2015-02-27 1.0680987202925045
# ...
# 2015-04-01 1.0237659963436931
# 2015-04-02 1.0530164533820843
# 2015-04-03 1.040219378427788
Deshalb.
Lassen Sie uns dieses Mal die Werte der letzten 30 Tage als Primzahl verwenden. Das heißt, das Obige wird so wie es ist ein 30-dimensionaler Vektor.
Hier sei k = 4.
kmeans_model = KMeans(n_clusters=4, random_state=30).fit(features)
labels = kmeans_model.labels_
for label, name, feature in zip(labels, names, data):
print(label, name)
#=>
# 2 9742
# 1 9682
# 2 9613
# 1 2327
# 3 9640
# 1 3626
# 1 2317
# 2 4684
# 0 9739
# 0 4726
# 2 4307
# 1 9719
# 0 4793
# 0 4812
# 1 8056
Auf diese Weise werden die Clusternummer und der Markencode angezeigt, zu denen Sie gehören.
Es ist schwer zu verstehen, ob es nur das ist, also lasst es uns visualisieren.
df = pd.DataFrame(df, index=ts)
plt.figure()
df.plot()
plt.subplots_adjust(bottom=0.20)
plt.legend(loc="best")
plt.savefig("cluster.png ")
plt.close()
Dies ist zunächst einmal Cluster 0.
Wenn Sie sich das vorstellen, können Sie sehen, dass sich die Aktien, die im März einen erheblichen Abwärtstrend verzeichneten, verfestigt haben.
Als nächstes kommt Cluster Nummer 1.
Dies ist eine Sammlung von Aktien, deren Preise gegen Ende des Geschäftsjahres angehoben wurden, obwohl es eine Reihe von Preisbewegungen gibt.
Cluster Nummer 2.
Unternehmen, die ihren Wert gesteigert haben, sammeln sich. Man kann sagen, dass die Leistung dieser vier Unternehmen günstig war.
Cluster 3 scheint aus einem Unternehmen ausgewählt worden zu sein, das sich etwas unregelmäßig verhalten hat.
Für jedes Unternehmen mit ähnlichen Preisbewegungen wurden Cluster gebildet. In der obigen Tabelle finden Sie die Beziehung zwischen Aktien und Firmennamen.
Dieses Mal haben wir nur SIer-Aktien ins Visier genommen. Wenn Sie dies jedoch tun möchten, können Sie ähnliche Aktien aus den Daten aller anderen börsennotierten Unternehmen ableiten.
Japan Exchange-Sonstige statistische Daten http://www.jpx.co.jp/markets/statistics-equities/misc/01.html
Eine Liste aller börsennotierten Unternehmen kann von oben heruntergeladen werden. Ich habe über die Erfassung von Bestandsdaten in Zurück geschrieben, daher werde ich sie weglassen.
Was können wir aus einer solchen Analyse lernen?
Eine Idee besteht darin, Unternehmen, die ähnliche Indikatoren aufweisen, aus Daten in einer Vielzahl von Branchen zu extrahieren, um beispielsweise den Zyklus beim Handel zu färben oder die Nachfrage nach versteckten IT-Investitionen zu schätzen, wenn es sich um eine Geschäftsstrategie handelt. Kann gemacht werden. Wenn wir für alle Branchen mechanisch Cluster bilden können, können wir uns die Mühe des menschlichen Urteils und des Aufnehmens ersparen.
Alternativ haben wir diesmal einfach den Rückgabeindex als Index verwendet, aber im Prinzip kann jeder Index verwendet werden. Beispielsweise wird der durchschnittliche Aktienkurs von Nikkei aus dem Durchschnitt von 225 Unternehmen berechnet. Wenn Sie jedoch aus nur 20 Unternehmen einen ähnlichen Index erstellen möchten, können Sie maschinelles Lernen verwenden.
In jedem Fall gibt es nichts weniger als eine Analyse, die auf Intuition und Erfahrung beruht. Menschen haben kognitive Verzerrungen und treffen emotionale Entscheidungen. Dieser Bereich ist [Verhaltensökonomie](http://ja.wikipedia.org/wiki/%E8%A1%8C%E5%8B%95%E7%B5%8C%E6%B8%88%E5%AD% Wie Sie aus A6) ersehen können, treffen Menschen nicht immer rationale Entscheidungen. Die Unterstützung mechanischer Analysen ist wichtig, um menschliche Emotionen zu eliminieren und rationale Entscheidungen bei der Analyse von Finanzdaten zu treffen.
Recommended Posts