机器学习入门:使用Scikit-learn进行实践

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 机器学习入门:使用Scikit-learn进行实践

机器学习入门:使用Scikit-learn进行实践

机器学习是人工智能的一个重要分支,它使计算机具备了从数据中学习和改进性能的能力,而不需要明确的编程。在这个教程中,我们将介绍如何使用Python中的Scikit-learn库进行机器学习任务。

什么是Scikit-learn?

Scikit-learn(简称Sklearn)是一个用于机器学习任务的Python库,它包含了许多用于分类、回归、聚类、降维和模型选择的工具。它建立在NumPy、SciPy和Matplotlib之上,为机器学习的实验提供了一个简单而高效的解决方案。

安装Scikit-learn

首先,确保你已经安装了Python和pip。然后可以使用以下命令来安装Scikit-learn:

pip install scikit-learn

机器学习流程

机器学习的一般流程如下:

数据收集:收集并准备数据集,确保数据质量。

数据预处理:对数据进行清洗、缺失值处理、特征选择、特征缩放等操作。

模型选择:选择合适的模型用于解决特定的问题。

模型训练:使用训练数据来训练模型。

模型评估:使用测试数据评估模型的性能。

1. 数据准备

首先,我们需要准备数据。我们采集了一份儿股票数据存入mysql 首先需要从mysql加载数据。

import pandas as pd
import mysql.connector

# 连接到 MySQL
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="12456",
    database="mydb"
)

def get_data_from_mysql():
    # 查询数据
    query = "SELECT * FROM re_stock_code_price"

    # 将数据加载到 DataFrame 中
    df = pd.read_sql(query, conn)

    # 关闭 MySQL 连接
    conn.close()
    return df



2. 数据预处理

在数据预处理阶段,我们需要处理缺失值、标准化特征等。Scikit-learn提供了许多内置的工具来帮助我们完成这些任务。

def data_prepare(df):
    # 删除不相关的列如 'id', 'code', 'name', 'create_time'
    df = df.drop(columns=['id', 'code', 'name', 'create_time'])

    # 处理缺失值
    df.dropna(inplace=True)

    # 将数据分为特征和目标变量
    X = df.drop(columns=['rise'])  # 特征
    y = df['rise']  # 目标变量

    # 对目标变量进行二元分类处理,1代表涨,0代表跌
    y_binary = (y == 1).astype(int)

    # 数据预处理:标准化
    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)

3. 拆分数据集

将数据集拆分为训练集和测试集,用于模型训练和评估。

 # 将数据分为训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X_scaled, y_binary, test_size=0.2, random_state=42)

    return X_train, X_test, y_train, y_test

4. 选择模型

选择一个适当的模型用于解决我们的问题。Scikit-learn提供了许多常用的机器学习模型,如线性回归、逻辑回归、决策树、随机森林等。线性回归刚好可以满足我们预测股票涨跌的二分类问题。

from sklearn.linear_model import LinearRegression

# 初始化线性回归模型
    linear_model = LinearRegression()

5. 模型训练

使用训练数据来训练模型。

def model_train_linner(X_train, X_test, y_train, y_test):

    # 初始化线性回归模型
    linear_model = LinearRegression()

    # 训练线性回归模型
    linear_model.fit(X_train, y_train)

    # 预测
    y_pred_linear = linear_model.predict(X_test)
  1. 模型评估
    使用测试数据评估模型的性能。
python
Copy code
from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)

评估模型

# 将线# 将线性回归预测值转化为二元类别(0或1)
    y_pred_linear_binary = (y_pred_linear > 0.5).astype(int)
    # 计算准确率
    accuracy_linear = accuracy_score(y_test, y_pred_linear_binary)
    print("线性回归模型准确率:", accuracy_linear)
    plt.figure(figsize=(10, 5))
    plt.scatter(y_test, y_pred_linear, color='green')
    plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], '--', color='red')
    plt.title('LinearRegression')
    plt.xlabel('Real')
    plt.ylabel('Estimate')
    plt.show()




结论

这篇教程介绍了如何使用Scikit-learn库进行股票数据预测的机器学习任务。我们学习了数据预处理、模型选择、训练和评估等步骤。希望这篇教程能帮助你入门机器学习,并开始实践自己的项目!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
机器学习/深度学习 算法 开发工具
大语言模型的直接偏好优化(DPO)对齐在PAI-QuickStart实践
阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对DPO算法提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现大语言模型的DPO对齐微调。本文以阿里云最近推出的开源大型语言模型Qwen2(通义千问2)系列为例,介绍如何在PAI-QuickStart实现Qwen2的DPO算法对齐微调。
|
13天前
|
数据采集 人工智能 监控
阿里云百炼模型训练实战流程:从入门到实战应用
【7月更文第2天】阿里云百炼是AI大模型开发平台,提供一站式服务,涵盖模型训练到部署。用户从注册登录、创建应用开始,选择模型框架,配置资源。接着,进行数据准备、预处理,上传至阿里云OSS。模型训练涉及设置参数、启动训练及调优。训练后,模型导出并部署为API,集成到应用中。平台提供监控工具确保服务性能。通过百炼,开发者能高效地进行大模型实战,开启AI创新。
135 1
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习算法入门:从K-means到神经网络
【6月更文挑战第26天】机器学习入门:从K-means到神经网络。文章涵盖了K-means聚类、逻辑回归、决策树和神经网络的基础原理及应用场景。K-means用于数据分组,逻辑回归适用于二分类,决策树通过特征划分做决策,神经网络则在复杂任务如图像和语言处理中大显身手。是初学者的算法导览。
|
23天前
|
机器学习/深度学习 API 索引
机器学习项目实践-基础知识部分
创建Python隔离环境使用`python -m venv`命令,如`python -m venv ml`来创建名为`ml`的虚拟环境。激活环境通过`.\<Scripts>\activate`(Windows)。然后可以使用`pip`安装库,如`numpy`、`pandas`、`matplotlib`和`jupyter notebook`。在虚拟环境中,`numpy`是用于数组计算的库,支持数学操作和绘图。`pip install`命令后面可添加`-i Simple Index`指定索引源。完成安装后,激活环境并启动`jupyter notebook`进行开发。
|
25天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到实践
【6月更文挑战第19天】本文旨在为读者提供一个机器学习的全面视角,从基本概念到实际应用案例,再到面临的挑战和未来趋势。我们将通过一个实际的项目案例来深入探讨如何将机器学习理论应用于解决现实世界问题,并分享一些在项目实施过程中学到的经验和教训。无论你是机器学习领域的新手还是有经验的从业者,这篇文章都将为你提供有价值的见解和启发。
25 4
|
1天前
|
机器学习/深度学习 Serverless Python
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
7 0
|
25天前
|
机器学习/深度学习 数据采集 算法
【机器学习】Scikit-Learn:Python机器学习的瑞士军刀
【机器学习】Scikit-Learn:Python机器学习的瑞士军刀
40 3
|
10天前
|
机器学习/深度学习 传感器 自动驾驶
【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索
【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索
18 0
|
18天前
|
机器学习/深度学习 算法 数据挖掘
技术心得:机器学习入门篇——感知器
技术心得:机器学习入门篇——感知器
|
25天前
|
机器学习/深度学习 人工智能 算法
【机器学习】AI在空战决策中的崛起:从理论到实践的跨越
【机器学习】AI在空战决策中的崛起:从理论到实践的跨越
28 0