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")

If you are Happy with DataFlair, do not forget to make us happy with your positive feedback 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 *