在机器学习项目中,我们通常遵循以下步骤:
本章会通过电影评分预测的示例,帮助你快速体验从数据到模型的基本流程。
在机器学习中,数据是最重要的部分。我们将使用一个包含电影评分的数据集,该数据集包含:
movie_id
:电影编号title
:电影名称genre
:电影类型user_id
:用户编号rating
:用户评分(1-5分)代码示例:用 Python 读取 CSV 文件
import pandas as pd
# 读取数据集
df = pd.read_csv("movies_ratings_large.csv")
# 显示前五行数据
print(df.head())
示例输出:
movie_id title genre user_id rating timestamp
0 13 Se7en Action 388 1 964991352
1 12 The Silence of the Lambs Crime 2454 1 964990251
2 8 Inception Sci-Fi 898 4 964996841
3 10 The Matrix Adventure 4210 2 964991636
4 14 Interstellar History 1135 1 964986006
现实数据通常包含缺失值、重复数据或格式问题,我们需要清理数据,确保数据质量。
代码示例:数据清理
# 检查缺失值
print(df.isnull().sum())
# 删除包含缺失值的行
df = df.dropna()
# 删除重复数据
df = df.drop_duplicates()
print("数据清理完成!")
我们要预测用户是否会给电影评分 4 及以上:
因为这是一个二分类问题(喜欢 / 不喜欢),我们选择逻辑回归模型,它适用于简单的分类任务。
模型训练就是让计算机从数据中找到模式,然后用于预测。
代码示例:简单的模型训练
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 处理数据:将评分转换为二分类
df['liked'] = df['rating'].apply(lambda x: 1 if x >= 4 else 0)
# 选择特征和目标变量
X = df[['movie_id']] # 这里仅用 movie_id 作为特征,后续章节会介绍更好的方法
y = df['liked']
# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)
print("模型训练完成!")
在真实应用中,我们会使用准确率、混淆矩阵、F1 分数等指标评估模型质量。但是在本章,我们先简单使用准确率,后面章节会详细讲解如何真正评估一个机器学习模型。
代码示例:评估模型准确率
from sklearn.metrics import accuracy_score
# 让模型在测试集上做预测
y_pred = model.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")
示例输出:
模型准确率: 0.62
✅ 机器学习的五个基本步骤:数据 → 预处理 → 选择模型 → 训练 → 评估
✅ 代码示例:使用 Python 读取 CSV 数据、清洗数据、训练一个简单的逻辑回归模型
✅ 模型训练和评估:只是简单演示,后续章节会更详细讲解!
movie_id
作为特征,尝试加入 genre
,看看效果如何?LogisticRegression()
之外,尝试 DecisionTreeClassifier()
:from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
matplotlib
画出电影评分的柱状图,看看数据是如何分布的:import matplotlib.pyplot as plt
df['rating'].hist(bins=5)
plt.xlabel('评分')
plt.ylabel('数量')
plt.title('电影评分分布')
plt.show()
本章只是让你快速体验整个机器学习流程,不要求完全理解每一步。在后续章节,我们会详细介绍:
下一章(第 3 章)将介绍线性回归,用于数值预测任务!