K-近邻算法(KNN)预测电影类型

目录

一:数据集准备

二:电影类型预测 详细步骤

三:完整源码分享 


一:数据集准备

下面博主先分享本节文章使用的数据集,

命名为classify.csv

搞笑镜头,拥抱镜头,打斗镜头,label
45,2,9,1
21,17,5,1
54,9,11,1
39,0,,1
5,2,57,2
3,2,65,2
6,4,21,2
7,46,4,3
9,39,8,3
9,38,17,3
2,3,55,2

二:电影类型预测 详细步骤

1 加载数据

# 搞笑镜头、拥抱镜头、打斗镜头
columns = ['a', 'b', 'c', 'label']
# 1加载数据
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)

2 缺失值处理 找到缺失值

# 2缺失值处理 找到缺失值
print(df.isnull().sum())
a        0
b        0
c        1
label    0
dtype: int64

3 缺失值处理 均值填充 替换原来的数据

# 替换原来数据inplace
df['c'].fillna(df.c.mean(), inplace=True)
print(df.describe())

4 数据打乱

# 4数据打乱
df = shuffle(df)

5 索引重新排列

# 5索引重新排序
df.reset_index(drop=True, inplace=True)
print(df.head(10), df.shape)
    a   b     c  label
0   3   2  65.0      2
1   5   2  57.0      2
2   2   3  55.0      2
3   7  46   4.0      3
4  54   9  11.0      1
5   9  38  17.0      3
6   6   4  21.0      2
7   9  39   8.0      3
8  45   2   9.0      1
9  21  17   5.0      1 (11, 4)

6 数据集划分

6-1 特征数据集划分

# 6数据划分
# 6-1特征训练集 + 特征测试集
x = df.iloc[:, :-1].values
print(x, x.shape, type(x))
[[ 5.   2.  57. ]
 [ 7.  46.   4. ]
 [ 2.   3.  55. ]
 [ 3.   2.  65. ]
 [21.  17.   5. ]
 [45.   2.   9. ]
 [ 9.  38.  17. ]
 [39.   0.  25.2]
 [ 9.  39.   8. ]
 [ 6.   4.  21. ]
 [54.   9.  11. ]] (11, 3) 

 6-2 标签数据集划分 

# 6-2标签训练集 + 标签测试集
y = np.ravel(df.iloc[:, -1:].values)
print(y, y.shape, type(y))

7 训练集+测试集 比例划分

# 7训练集+测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=6)

8 创建算法

# 8创建算法 K近邻算法
knn_model = KNeighborsClassifier(n_neighbors=3)

9 创建模型

# 9创建基于训练集的模型
knn_model.fit(x_train, y_train)

10 模型评分

# 10模型评分
score = knn_model.score(x_test, y_test)
print(score)
0.6666666666666666

11 模型预测

# 11模型预测
y_predict = knn_model.predict(x_test)
print(y_predict == y_test)
[ True  True False]

三:完整源码分享 

完整源码分享,需要自取

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 搞笑镜头、拥抱镜头、打斗镜头
columns = ['a', 'b', 'c', 'label']
# 1加载数据
df = pd.read_csv("classify.csv", sep=',', names=columns, header=0)
# 2缺失值处理 找到缺失值
# print(df.isnull().sum())
# 替换原来数据inplace
df['c'].fillna(df.c.mean(), inplace=True)
# print(df.describe())
# 3数据打乱
df = shuffle(df)
# 5索引重新排序
df.reset_index(drop=True, inplace=True)
# print(df.head(10), df.shape)
# 6数据划分
# 6-1特征训练集 + 特征测试集
x = df.iloc[:, :-1].values
# print(x, x.shape, type(x))
# 6-2标签训练集 + 标签测试集
y = np.ravel(df.iloc[:, -1:].values)
# print(y, y.shape, type(y))
# 7训练集+测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=6)
# 8创建算法 K近邻算法
knn_model = KNeighborsClassifier(n_neighbors=3)
# 9创建基于训练集的模型
knn_model.fit(x_train, y_train)
# 10模型评分
score = knn_model.score(x_test, y_test)
print(score)
# 11模型预测
y_predict = knn_model.predict(x_test)
print(y_predict == y_test)

K-近邻算法(KNN)预测电影类型_第1张图片

你可能感兴趣的:(机器学习,近邻算法,数据挖掘,sklearn,人工智能)