2019-11-27
지금까지 Dell 코드:
import quandl, math
import numpy as np
import pandas as pd
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
df = quandl.get("WIKI/GOOGL")
print(df.head())
#print(df.tail())
df = df[['Adj. Open', 'Adj. High', 'Adj. Low', 'Adj. Close', 'Adj. Volume']]
df['HL_PCT'] = (df['Adj. High'] - df['Adj. Low']) / df['Adj. Close'] * 100.0
df['PCT_change'] = (df['Adj. Close'] - df['Adj. Open']) / df['Adj. Open'] * 100.0
df = df[['Adj. Close', 'HL_PCT', 'PCT_change', 'Adj. Volume']]
print(df.head())
forecast_col = 'Adj. Close'
df.fillna(value=-99999, inplace=True)
forecast_out = int(math.ceil(0.01 * len(df)))
df['label'] = df[forecast_col].shift(-forecast_out)
우리 앞으로 남인 메시지 다 버려야 돼.
df.dropna(inplace=True)
기계 학습에 있어 일반적으로
X
(대문자)을 특징으로 하고 y
(소문자)을 특징에 대한 라벨로 정의한다.이렇게 하면 다음과 같이 피쳐와 레이블을 정의할 수 있습니다.X = np.array(df.drop(['label'], 1))
y = np.array(df['label'])
위에서 우리가 한 것은
X
(특징)을 정의하는 것이다. 이것은 우리 전체의 DataFrame이고 label
열을 제외하고 NumPy 그룹으로 전환한다.DataFrame에서는 새로운 DataFrame을 반환하는 drop
메서드를 사용합니다.다음은 DataFrame의 태그 열일 뿐 아니라 NumPy 배열로 변환되는 y
변수를 정의합니다.이제 우리는 일단락을 짓고 훈련과 테스트로 돌아갈 수 있지만, 우리는 약간의 예처리를 할 계획이다.보통 당신의 특징이 -1에서 1까지의 범위 내에 있기를 바랍니다.이것은 작용하지 않을 수도 있지만, 통상적으로 처리 과정을 가속화하고 정확성에 도움이 된다.모두가 이 범위를 사용하기 때문에, 그것은 Sklearn의
preprocessing
모듈에 포함되어 있다.그것을 사용하기 위해서는 X
변수를 preprocessing.scale
으로 호출해야 합니다.X = preprocessing.scale(X)
다음은 태그
y
을 만듭니다.y = np.array(df['label'])
이제 훈련하고 테스트할 때야.방식은 75퍼센트의 데이터를 골라 기계 학습 분류기를 훈련시키는 것이다.이후 나머지 25%의 데이터를 선택하여 분류기를 테스트합니다.이것은 당신의 예시 데이터이기 때문에, 당신은 특징과 항상 라벨을 가지고 있어야 합니다.따라서 만약 당신이 테스트 후 25%의 데이터를 얻게 된다면, 당신은 신뢰도라는 정확도와 신뢰성을 얻게 될 것이다.많은 방식으로 그것을 실현할 수 있지만, 가장 좋은 방법은 내장된
cross_validation
을 사용하는 것이다. 왜냐하면 그것도 당신을 위해 데이터를 흐트러뜨릴 수 있기 때문이다.코드는 다음과 같습니다.X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.2)
이곳의 반환값은 특징적인 훈련 집합, 테스트 집합, 라벨의 훈련 집합과 테스트 집합이다.현재, 우리는 이미 분류기를 정의했다.Sklearn은 회귀에 사용할 수 있는 많은 일반적인 분류기를 제공합니다.우리는 이 예에서 몇 가지를 보여 드리지만, 지금은
svm
패키지의 지원 벡터 회귀를 사용합니다.clf = svm.SVR()
우리는 일을 간단하게 하기 위해 기본 옵션만 사용하지만, 당신은
sklearn.svm.SVR
의 문서에서 더 많은 것을 알 수 있습니다.일단 분류기를 정의하면, 너는 그것을 훈련시킬 수 있다.Sklearn에서는
fit
으로 훈련한다.clf.fit(X_train, y_train)
이곳에서 우리는 우리의 훈련 특징과 훈련 라벨을 맞췄다.
우리의 분류기는 현재 훈련이 끝났다.이것은 매우 간단하다. 이제 우리는 테스트할 수 있다.
confidence = clf.score(X_test, y_test)
테스트 로드 후:
print(confidence)
# 0.960075071072
그래서 여기서 우리는 정확도가 거의 96퍼센트라는 것을 볼 수 있다.할 말이 없으니 다른 분류기를 시도해 봅시다. 이번에는
LinearRegression
을 사용하겠습니다.clf = LinearRegression()
# 0.963311624499
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.