【Python】机器学习算法对电影进行分类
随着人工智能和机器学习技术的不断进步,它们在各个领域的应用也越来越广泛。其中,电影产业也不例外。本文将使用K近邻算法(KNN)、朴素贝叶斯算法(NB)、支持向量机(SVM)、决策树(DT)和逻辑回归(LR),并利用这些算法对一组电影进行类型预测。
'''
K近邻算法(KNN)
朴素贝叶斯算法(NB)
支持向量机(SVM)
决策树(DT)
逻辑回归(LR)
'''
import pandas as pd
from sklearn import neighbors
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.linear_model import LogisticRegression
# 训练数据集
films = pd.DataFrame(columns=['id', '打斗场景', '亲吻场景', '电影类型'])
films['id'] = [i for i in range(1,11)]
films['打斗场景'] = [100,123,341,234,124,32,45,62,12,4]
films['亲吻场景'] = [10,31,21,32,2,89,65,55,123,45]
films['电影类型'] = ['武打片','武打片','武打片','武打片','武打片','爱情片','爱情片','爱情片','爱情片','爱情片']
# 预测数据集
test = [[234,56], [67, 94], [125, 100], [20, 10]]
# KNN
knn = neighbors.KNeighborsClassifier()
X = films[['打斗场景', '亲吻场景']].values
Y = films['电影类型'].values
knn.fit(X,Y)
predict = knn.predict(test)
print('KNN预测的电影类型分别为:', predict)
# KNN预测的电影类型分别为: ['武打片' '爱情片' '爱情片' '爱情片']
# NB
nb = GaussianNB()
nb.fit(X,Y)
predict = nb.predict(test)
print('NB预测的电影类型分别为:', predict)
# NB预测的电影类型分别为: ['武打片' '爱情片' '爱情片' '武打片']
# SVM
svm = SVC()
svm.fit(X,Y)
predict = svm.predict(test)
print('SVM预测的电影类型分别为:', predict)
# SVM预测的电影类型分别为: ['武打片' '爱情片' '武打片' '爱情片']
# DT
dt = DecisionTreeClassifier()
dt.fit(X,Y)
predict = dt.predict(test)
print('DT预测的电影类型分别为:', predict)
# DT预测的电影类型分别为: ['武打片' '爱情片' '武打片' '爱情片']
# LR
lr = LogisticRegression()
lr.fit(X,Y)
predict = lr.predict(test)
print('LR预测的电影类型分别为:', predict)
# LR预测的电影类型分别为: ['武打片' '爱情片' '爱情片' '爱情片']