你想开始吗 机器学习?
我为初学者创建了一个简单易用的教程。 我们将一起回顾训练机器学习模型的基本步骤。
在逐一解释训练模型的步骤时,我还将给出一个非常基本的机器学习问题示例。 所以,如果你想继续,你可以从这里下载这个示例数据集 链接.
这只是一个示例数据集,可帮助您开始使用机器学习。
我们有 18 个不同年龄和性别的人的价值观,这些价值观定义了他们最喜欢的音乐。 通过使用“年龄”和“性别”的特征,我们将尝试猜测他们最喜欢哪种音乐类型。
注意:1 和 0 在该数据集中被分配给女性和男性。
但是,如果您不想照搬这个例子,那也完全没问题。 我将详细解释所有这些步骤。 那么,让我们开始吧!
首先要知道的事情
在进入训练模型的步骤之前,让我们澄清一些要点。 机器学习是一个 人工智能 专注于开发可以从数据中学习的算法的学科。
为此,机器学习模型在一个数据集上进行训练,该数据集教导模型如何做出正确的预测或 分类 基于新鲜的、以前未知的数据。
那么,这些模型是什么? A 机器学习模型 类似于计算机用来生成数据预测或选择的食谱。
一个模型,就像一个食谱,遵循一组指令来评估数据并根据在数据中发现的模式生成预测或判断。 训练模型的数据越多,其预测就越准确。
我们可以训练什么样的模型?
让我们看看基本的机器学习模型是什么。
- 线性回归:一种根据一个或多个输入变量预测连续目标变量的模型。
- 神经网络: 可以学习检测数据中复杂模式的链接节点网络。
- 决策树:一种建立在分支 if-else 语句链上的决策方法。
- 聚类:一组基于相似性对可比较数据点进行分组的模型。
- 逻辑回归:二元分类问题的模型,其中目标变量具有两个潜在值。
- 决策树:一种建立在分支 if-else 语句链上的决策方法。
- 随机森林:由众多决策树组成的集成模型。 它们经常用于分类和回归应用程序。
- K-Nearest Neighbors:使用训练集中k-最近的数据点预测目标变量的模型。
根据我们的问题和数据集,我们决定哪种机器学习模型最适合我们的情况。 然而,我们稍后会回到这一点。 现在,让我们开始训练我们的模型。 我希望你已经下载了 数据集 如果您想效仿我们的榜样。
另外,我建议有 Jupyter笔记本 安装在您的本地机器上并将其用于您的机器学习项目。
1:定义问题
第一阶段在 训练机器学习 模型定义要解决的问题。 这需要选择您希望预测的变量(称为目标变量)和将用于生成这些预测的变量(称为特征或预测变量)。
您还应该决定要解决的机器学习问题类型(分类、回归、聚类等)以及需要收集或训练模型的数据类型。
您使用的模型类型将取决于您要解决的机器学习问题的类型。 分类、回归和聚类是三大类 机器学习挑战. 当你想预测一个分类变量时,比如一封电子邮件是否是垃圾邮件,你可以使用分类。
当您希望预测连续变量(如房价)时,您可以使用回归。 聚类用于根据它们的共性将可比较的数据项放在一起。
如果我们看一下我们的例子; 我们的挑战是根据一个人的性别和年龄来确定他们喜欢的音乐风格。 我们将在此示例中使用包含 18 个人的数据集以及有关他们的年龄、性别和最喜欢的音乐风格的信息。
2.准备数据
指定问题后,您需要准备用于训练模型的数据。 这需要清理和处理数据。 所以,我们可以确保它的格式是 机器学习算法 可以使用。
这可能包括删除缺失值、将分类数据转换为数字数据以及缩放或规范化数据以确保所有特征都在同一尺度上等活动。
例如,这是删除缺失值的方式:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
小注:在 o “import pandas as pd",
我们导入 Pandas 库并为其分配别名“pd”,以便稍后在代码中引用其函数和对象。
Pandas 是用于数据操作和分析的著名 Python 模块,尤其是在处理结构化或表格数据时。
在我们确定音乐流派的示例中。 我们将首先导入数据集。 我将其命名为 music.csv,但是,您可以随意命名。
为了准备用于训练机器学习模型的数据,我们将其分为属性(年龄和性别)和目标(音乐流派)。
我们还将数据分成 80:20 的训练和测试集,以评估我们模型的性能并避免过度拟合。
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. 选择机器学习模型。
准备好数据后,您必须选择适合您任务的机器学习模型。
有多种算法可供选择,例如决策树、逻辑回归、支持向量机、神经网络等。 您选择的算法将取决于您尝试回答的问题类型、您拥有的数据类型以及您的性能需求。
我们将在此示例中使用决策树分类器,因为我们正在处理分类问题(预测分类数据)。
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
这是决策树分类器如何工作的可视化:
4.训练模型
选择可接受的机器学习算法后,即可开始训练模型。 这需要利用先前生成的数据来教育算法如何对新的、以前未见过的数据进行预测。
该算法将在训练期间修改其内部参数,以最小化其预测值与训练数据中的实际值之间的差异。 用于训练的数据量以及算法的特定参数都会对结果模型的准确性产生影响。
在我们的具体示例中,既然我们已经决定了一种方法,我们就可以使用训练数据训练我们的模型。
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. 评估模型
模型经过训练后,必须根据新数据对其进行评估,以确保其准确可靠。 这需要使用训练期间未使用的数据测试模型,并将其预测值与测试数据中的实际值进行比较。
此审查可以帮助识别任何模型缺陷,例如过度拟合或欠拟合,并可能导致可能需要的任何微调。
使用测试数据,我们将评估模型的正确性。
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
目前准确率还算不错。 🙂 为了提高您的准确率得分,您可以随时清理更多数据或尝试不同的机器学习模型,看看哪个得分最高。
6.微调模型
如果模型的效率不够高,您可以通过更改各种算法参数或完全试验新算法来对其进行微调。
此过程可能包括尝试替代学习率、修改正则化设置或更改神经网络中隐藏层的数量或大小。
7.使用模型
一旦您对模型的性能感到满意,您就可以开始使用它来生成对新数据的预测。
这可能需要将新数据输入模型并利用模型的学习参数生成对该数据的预测,或者将模型集成到更广泛的应用程序或系统中。
在我们对模型的准确性感到满意后,我们可以使用我们的模型对新数据生成预测。 您可以尝试不同的性别和年龄值。
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
包起来
我们已经完成了第一个机器学习模型的训练。
我希望你发现它很有用。 您现在可以尝试使用不同的机器学习模型,例如线性回归或随机森林。
有许多数据集和挑战 Kaggle 如果您想提高编码和对机器学习的理解。
发表评论