kNN 알고리즘 회귀 실례: 집값 예측

10278 단어 기계 학습

문서 목록

  • 실전 내용
  • 참고자료
  • 실전 내용


    집값을 예측하다
    코드는 다음과 같습니다.
    #!/usr/bin/env python 
    # -*- coding:utf-8 -*-
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    from sklearn import preprocessing
    from sklearn.neighbors import KNeighborsRegressor
    from sklearn.metrics import mean_squared_error
    
    #load csv
    cols = ['accommodates','bedrooms','bathrooms','beds','price','minimum_nights','maximum_nights','number_of_reviews']
    features = ['accommodates','bedrooms','bathrooms','beds','minimum_nights','maximum_nights','number_of_reviews']
    dataset = pd.read_csv('listings.csv')
    dataset = dataset[cols]
    dataset = dataset.dropna()
    
    #analyze dataset roughly
    print(dataset.head())
    print(dataset.shape)
    print(dataset.dtypes)
    print(dataset.columns)
    
    # change types of labels
    dataset['price'] = dataset.price.str.replace("\$|,",'').astype(float)
    
    # analyze dataset through plot 
    #            
    '''
    sns.pairplot(dataset)
    plt.show()
    '''
    # preprocessing minmaxscaler
    min_max_scaler = preprocessing.MinMaxScaler()
    dataset_minmax = dataset.copy()
    dataset_minmax[features] = min_max_scaler.fit_transform(dataset[features])
    print(dataset_minmax.head())
    
    #cut dataset
    train_minmax = dataset_minmax[features].iloc[:2792]
    train_minmax = train_minmax.sample(frac=1,random_state=0)  #shuffle
    test_minmax = dataset_minmax[features].iloc[2792:]
    label_train = dataset_minmax.price.iloc[:2792]
    label_test = dataset_minmax.price.iloc[2792:]
    
    #training
    knn = KNeighborsRegressor()
    knn.fit(train_minmax,label_train)
    
    #evaluating
    label_predictions = knn.predict(test_minmax)
    print(len(label_predictions))
    print(label_predictions.shape)
    label_mse = mean_squared_error(label_test, label_predictions)
    rmse = label_mse ** (1/2)
    print("RMSE:%f"%rmse)
    print(pd.Series(label_predictions))
    

    참고 자료


    클래식 알고리즘의 K 근접 (회귀 부분) sns.lmplot () 의 비교적 상세한 사용법 Python에서 판다스 DataFrame의 어떤 일/몇 열numpy 증가 공차원reshape(-1,1)과reshape(1,-1)를 어떻게 삭제하는지는 무슨 뜻입니까?어떻게 seaborn으로 다변량 분석을 합니까?어떻게 귀일화 수치를 복원합니까?

    좋은 웹페이지 즐겨찾기