|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | +""" |
| 3 | +Created on Sat Jun 13 22:19:53 2020 |
| 4 | +
|
| 5 | +@author: HP |
| 6 | +""" |
| 7 | + |
| 8 | +import numpy as np |
| 9 | +import pandas as pd |
| 10 | +from sklearn.model_selection import train_test_split,GridSearchCV,cross_val_score |
| 11 | +from sklearn.metrics import mean_squared_error,r2_score |
| 12 | +from sklearn.neighbors import KNeighborsRegressor |
| 13 | +from warnings import filterwarnings |
| 14 | +import matplotlib.pyplot as plt |
| 15 | +xor=pd.read_csv("original.csv") |
| 16 | +df=xor.copy() |
| 17 | +df=df.drop(df.columns[0],axis=1) |
| 18 | +y = df["sales"] |
| 19 | +x = df.drop(["sales"],axis=1) |
| 20 | +x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25,random_state=45) |
| 21 | +knn_model=KNeighborsRegressor().fit(x_train,y_train) |
| 22 | +knn_params={'n_neighbors': np.arange(1,135,1)} |
| 23 | +knn=KNeighborsRegressor() |
| 24 | +knn_cv_model = GridSearchCV(knn,knn_params,cv=10) |
| 25 | +knn_cv_model.fit(x_train,y_train) |
| 26 | +knn_tuned=KNeighborsRegressor(n_neighbors=knn_cv_model.best_params_["n_neighbors"]) |
| 27 | +knn_tuned.fit(x_train,y_train) |
| 28 | +drmse0=np.sqrt(-1*cross_val_score(knn_model,x_test,y_test,cv=10,scoring="neg_mean_squared_error")).mean() |
| 29 | +drmse1=np.sqrt(-1*cross_val_score(knn_tuned,x_test,y_test,cv=10,scoring="neg_mean_squared_error")).mean() |
| 30 | +rmse0=np.sqrt(mean_squared_error(y_test,knn_model.predict(x_test))) |
| 31 | +rmse1=np.sqrt(mean_squared_error(y_test,knn_tuned.predict(x_test))) |
| 32 | +print("test hatası:"+str(("%.3f\n")%rmse0)+" doğrulanmış test hatası:"+str(("%.3f\n")%drmse0)) |
| 33 | +print("model tunning sonrası test hatası:"+str(("%.3f\n")%rmse1)+" model tunning sonrası doğrulanmış test hatası:"+str(("%.3f")%drmse1)) |
| 34 | +tv=input("TV reklam sayısı: ") |
| 35 | +radyo=input("radyo reklam sayısı: ") |
| 36 | +gazete=input("gazete reklam sayısı: ") |
| 37 | +veri=[[tv,radyo,gazete]] |
| 38 | +filterwarnings('ignore') |
| 39 | +print("\n tahmini satış: "+str(("%d")%knn_tuned.predict(veri))) |
| 40 | +r2=r2_score(y_test,knn_tuned.predict(x_test)) |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | + |
0 commit comments