ML Project – Tourist Destination Recommender System using Random Forest

Machine Learning courses with 100+ Real-time projects Start Now!!

Program 1

Tourist Recommendation Dataset

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.pyplot as plt

#Load Dataset
df = pd.read_csv("D://scikit_data/tourist/tourist_recommendation_rf.csv")

df.shape

df.shape

df.info()

df.isnull().sum()

# Independed and Depended variables
X = df.drop(['Name', 'Recommended'], axis=1) # Independed
y = df['Recommended'] # Depended variables

X

y

# Train Random Forest model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X, y)

# Find  feature importances
feature_importances = pd.Series(model.feature_importances_, index=X.columns)
feature_importances = feature_importances.sort_values(ascending=False)
feature_importances



# Plot feature importance
plt.figure(figsize=(8, 5))
sns.barplot(x=feature_importances, y=feature_importances.index, palette='viridis')
plt.title("Feature Importance in Tourist Destination Recommender")
plt.xlabel("Importance Score")
plt.ylabel("Feature")
plt.grid(True)
plt.tight_layout()
plt.show()

Program 2

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report

#Load Dataset
df = pd.read_csv("D://scikit_data/tourist/tourist_recommendation_rf.csv")

# Independed and Depended variables
X = df.drop(['Name', 'Recommended'], axis=1) # Independed
y = df['Recommended'] # Depended variables

# Split Data Set in Train and Test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

X_train

X_test

# Create Model
model=RandomForestClassifier()
model.fit(X_train,y_train)

model.score(X_train,y_train)

# Predication
# User input as preference dictionary
na=int(input("Nature Friendly(Yes-1 , No-0): "))
cu=int(input("Culture Friendly(Yes-1 , No-0): "))
ad=int(input("Adventure Friendly(Yes-1 , No-0): "))
lx=int(input("Luxury Friendly(Yes-1 , No-0): "))
bd=int(input("Budget Friendly(Yes-1 , No-0): "))
fm=int(input("Family Friendly(Yes-1 , No-0): "))
user_preferences = {
    'Nature': na,
    'Culture': cu,
    'Adventure': ad,
    'Luxury': lx,
    'Budget': bd,
    'FamilyFriendly': fm
}
df_input=pd.DataFrame([user_preferences])
result=model.predict(df_input)
# Show result
if result == 1:
    print("\n Recommended Destination Based on Your Preferences")
else:
    print("\n No Suitable Recommendation Found for Your Preferences")

Did you like our efforts? If Yes, please give DataFlair 5 Stars on Google

courses

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *