아다라인으로 드래곤볼을 분류해 봤어요.

10608 단어 용구슬Python

개시하다

  • 이른adaline
  • 이번에 사용된 데이터
  • 설치
  • 이른바 아다라인


    아주 알기 쉬운 기사가 있으니까 붙여주세요.
    이른바 퍼스트 프론의 개량판이다.
    2.ADALINE

    이번에 사용한 데이터


    이번에는 상당히 유명한 아이리스의 데이터를 사용했다.
    https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
    여기를 다운로드하세요.

    이루어지다


    이번에는python으로 실현하고 싶어요.수업의 한 부분이기 때문에 자신이 별로 조사하지 않고 썼기 때문에 함수화된 부분이 있는지 양해해 주십시오.
    adaline.py
    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    
    df = pd.read_csv(iris-data.csv,header=None)
    df_new = df.drop(columns=[1,3])
    df_new = df_new.replace(Iris-setosa,0)
    df_new = df_new.replace(Iris-versicolor,1)
    df_new
    
    eta = 0.001
    epoch = 100
    cost_=[]
    t = np.array(df_new[4])
    X = np.array([df_new[0],df_new[2]]).T
    w = np.random.normal(0.0, 0.01, size=X.shape[1] + 1)
    
    # 重みの初期値の確認
    print(w)
    
    for I in range(epoch):
            input_ = np.dot(X,w[1:])+w[0]
            predict = np.where(input_>= 0, 1, 0)
            errors = t - predict
    
            # 重みに更新
            w[1:] += eta * np.dot(errors,X)
            w[0] += eta * errors.sum()
    
            # コスト関数の計算
            cost = (errors**2).sum() / 2.0
            cost_.append(cost)
    
    # 重みの確認
    print(w)
    
    
    # とりあえずプロット        
    x_a = range(4,8)
    y_a = [-(w[1]/w[2])*xi-(w[0]/w[2]) for xi in x_a]
    plt.scatter(df_new.iloc[:50,0],df_new.iloc[:50,1],label = Iris-versicolor)  
    plt.scatter(df_new.iloc[50:,0],df_new.iloc[50:,1],label = Iris-setosa)
    plt.ylabel(petal length[cm])
    plt.xlabel(sepal length[cm])
    plt.plot(x_a,y_a)
    plt.legend()
    plt.show()
    

    거의 순서대로 썼지만 도표를 잘 그렸다.나 자신도 아다라인에 대한 이해를 깊이 할 수 있어서 정말 다행이다.

    최후


    어때요?예쁜 코드는 아니지만 python이라고 쓰여 있어서 업로드도 해봤어요.앞으로 더 높은 수준의 물건을 싣고 싶다.

    좋은 웹페이지 즐겨찾기