小白也能搞懂的机器学习原理

数据科技有技术 2024-06-02 03:12:33

简单地说,机器学习是训练一个数学模型,用于预测的过程。

举个例子,你教小学生玩王者荣耀。你不需要告诉他每一个动作的每一个细节,只需要给他一些规则和一些练习,他就能自己学会如何玩这个游戏。这个学的过程就是在训练脑子里的模型。

机器学习也是差不多的原理,它通过分析大量数据来学习规律,然后根据这些规律对未来的数据做出预测。

小学生会通过不断玩某个英雄,然后技巧越来越厉害,最后升到王者。机器学习算法也是通过不断分析数据来提高自己的预测能力,基本上训练数据越大越准确。

机器学习算法不断尝试找到一个函数,这个函数能够最准确的映射输入数据(比如图片)到输出结果(比如识别“猫”或“狗”)。

再比如,你想要开发一款预测你家狗何时尿尿的机器学习应用。

你可以为机器学习模型提供大量狗的特征和生活习惯的数据,比如品种、年龄、体重、喝水量、喝水时间、尿尿时间、健康状态等等,直到机器学习模型最终学习到狗尿尿时间与其他特征之间的数学关系,可以推测出大致的的时间点。

比如下面用Python演示下这个预测过程。

import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.metrics import accuracy_score# 示例数据data = { 'Age': [1, 3, 5, 2, 4], # 狗狗的年龄 'Weight': [10, 20, 15, 25, 18], # 狗狗的体重 'Water_Intake': [200, 250, 300, 350, 330], # 每日饮水量 'Last_Pee_Time': [120, 180, 240, 100, 150], # 自上次尿尿以来的分钟数 'Time_Since_Last_Pee': [30, 60, 45, 90, 75] # 目标变量:上次尿尿到现在的时间(分钟)}# 创建DataFramedf = pd.DataFrame(data)# 定义特征和目标X = df.drop('Time_Since_Last_Pee', axis=1)y = df['Time_Since_Last_Pee']# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建随机森林模型model = RandomForestClassifier(n_estimators=100)# 训练模型model.fit(X_train, y_train)# 预测测试集y_pred = model.predict(X_test)# 评估模型accuracy = accuracy_score(y_test, y_pred)print(f'模型准确率: {accuracy * 100:.2f}%')

现在基本可以把机器学习分为三类,我们拿学生考试做类比。

监督式学习:这类学生刷了很多旧题后考试

非监督式学习:这类学生不刷题,通过记公式和找规律来考试

强化学习:这类学生也不刷题,通过试错来考试,对了就奖励,错了就惩罚

机器学习之所以会流行,因为它能够解决那些难以通过传统编程方法解决的复杂问题,比如预测、分类、推荐、聚合等等。

现在机器学习的应用已经非常多了,从简单的图像识别、语音识别,到复杂的医疗诊断、股市分析等,还有最近的大模型也属于机器学习的一种

学习机器学习需要对数学基础如线性代数、概率论和统计学有基本的了解。你可以从简单的模型开始,多参加一些比赛、项目,像kaggle之类,久而久之就会摸熟其中的原理。

0 阅读:0

数据科技有技术

简介:感谢大家的关注