特征工程与交叉验证在机器学习中的应用

数据入口:学生考试表现影响因素数据集 - Heywhale.com

本数据集提供了关于影响学生考试成绩的多种因素的全面概述。数据集包含了有关学习习惯、出勤率、家长参与、资源获取等方面的信息。

数据说明

字段名说明
Hours_Studied每周学习的小时数
Attendance出勤率(上课出席的百分比)
Parental_Involvement家长参与程度(低,中,高)
Access_to_Resources教育资源的可用性(低,中,高)
Extracurricular_Activities课外活动参与情况(是,否)
Sleep_Hours每晚平均睡眠时间(小时)
Previous_Scores之前考试的分数
Motivation_Level学生的动机水平(低,中,高)
Internet_Access互联网接入情况(是,否)
Tutoring_Sessions每月参加辅导课的次数
Family_Income家庭收入水平(低,中,高)
Teacher_Quality教师质量(低,中,高)
School_Type学校类型(公立,私立)
Peer_Influence同伴对学业表现的影响(积极,中立,消极)
Physical_Activity每周平均体育活动时间(小时)
Learning_Disabilities学习障碍(是,否)
Parental_Education_Level父母的最高学历(高中,本科,研究生)
Distance_from_Home家到学校的距离(近,适中,远)
Gender学生性别(男,女)
Exam_Score期末考试成绩

在本文中将分析不同学习习惯、家长参与度、资源获取等对学生考试成绩的影响以及构建机器学习模型预测学生的考试成绩。

一:影响因素分析

import pandas as pdfile_path = 'StudentPerformanceFactors.csv'
df = pd.read_csv(file_path)df.info()

了解到该数据含有较少的空缺值,可以进行删除:

df = df[(df!= 0).all(axis=1)]

我们的目标是分析这些因素对Exam_Score(考试成绩)的影响。为了进行这个分析,我们可以采用以下步骤:

  1. 描述性统计分析:首先,我们可以查看这些变量的描述性统计信息,以了解其分布和基本特征。
  2. 相关性分析:接着,我们可以计算这些变量与考试成绩之间的相关性,以找出哪些因素与考试成绩最相关。
  3. 可视化分析:为了更直观地展示结果,我们可以创建一些图表来可视化这些关系。

让我们首先进行描述性统计分析。

descriptive_stats = df[['Hours_Studied', 'Attendance', 'Parental_Involvement', 'Access_to_Resources','Extracurricular_Activities', 'Sleep_Hours', 'Previous_Scores', 'Motivation_Level','Internet_Access', 'Tutoring_Sessions', 'Family_Income', 'Teacher_Quality','School_Type', 'Peer_Influence', 'Physical_Activity', 'Learning_Disabilities','Parental_Education_Level', 'Distance_from_Home', 'Gender', 'Exam_Score']].describe()descriptive_stats

以下是对相关字段的描述性统计分析结果:

  • Hours_Studied(学习时间)

    • 平均值:约20小时
    • 标准差:约6小时
    • 最小值:1小时
    • 最大值:44小时
  • Attendance(出勤率)

    • 平均值:约80%
    • 标准差:约12%
    • 最小值:60%
    • 最大值:100%
  • Sleep_Hours(睡眠时间)

    • 平均值:约7小时
    • 标准差:约1.5小时
    • 最小值:4小时
    • 最大值:10小时
  • Previous_Scores(历史成绩)

    • 平均值:约75分
    • 标准差:约14分
    • 最小值:50分
    • 最大值:100分
  • Tutoring_Sessions(辅导课程数量)

    • 平均值:约1.5次
    • 标准差:约1.2次
    • 最小值:0次
    • 最大值:8次
  • Physical_Activity(体育活动)

    • 平均值:约3次
    • 标准差:约1次
    • 最小值:0次
    • 最大值:6次
  • Exam_Score(考试成绩)

    • 平均值:约67分
    • 标准差:约4分
    • 最小值:55分
    • 最大值:101分

接下来,我们可以进行相关性分析,以查看这些变量与考试成绩之间的相关性。

correlation_matrix = df[['Hours_Studied', 'Attendance', 'Sleep_Hours', 'Previous_Scores', 'Tutoring_Sessions', 'Physical_Activity', 'Exam_Score']].corr()correlation_matrix['Exam_Score']

以下是与考试成绩(Exam_Score)的相关性分析结果:

  • Hours_Studied(学习时间):0.445 - 表明学习时间与考试成绩有中等程度的正相关。
  • Attendance(出勤率):0.581 - 表明出勤率与考试成绩有较强的正相关。
  • Sleep_Hours(睡眠时间):-0.017 - 表明睡眠时间与考试成绩几乎不相关。
  • Previous_Scores(历史成绩):0.175 - 表明历史成绩与考试成绩有较弱的正相关。
  • Tutoring_Sessions(辅导课程数量):0.157 - 表明辅导课程数量与考试成绩有较弱的正相关。
  • Physical_Activity(体育活动):0.028 - 表明体育活动与考试成绩几乎不相关。

为了更直观地展示这些关系,我们可以创建一些图表来可视化这些关系。我们可以从最相关的变量开始,比如学习时间、出勤率和历史成绩。让我们为这些变量创建散点图。

import matplotlib.pyplot as plt
import seaborn as snsplt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falseplt.figure(figsize=(15, 10))plt.subplot(2, 2, 1)
sns.scatterplot(x='Hours_Studied', y='Exam_Score', data=df)
plt.title('学习时间 vs 考试成绩')plt.subplot(2, 2, 2)
sns.scatterplot(x='Attendance', y='Exam_Score', data=df)
plt.title('出勤率 vs 考试成绩')plt.subplot(2, 2, 3)
sns.scatterplot(x='Previous_Scores', y='Exam_Score', data=df)
plt.title('历史成绩 vs 考试成绩')plt.tight_layout()plt.show()

从上面的散点图中,我们可以观察到以下关系:

  1. 学习时间 vs 考试成绩:可以看到,随着学习时间的增加,考试成绩也呈现出一定的上升趋势。这证实了之前的正相关分析。

  2. 出勤率 vs 考试成绩:出勤率与考试成绩之间也呈现出正相关关系。随着出勤率的提高,考试成绩也有所提高。

  3. 历史成绩 vs 考试成绩:历史成绩与考试成绩之间也有一定的正相关关系,尽管没有前两个因素那么明显。

二:学业表现预测

为了构建一个适合的机器学习模型来预测学生的考试成绩,我们可以遵循以下步骤:

1: 数据预处理

  • 缺失值处理:检查数据集中是否存在缺失值,并决定是填充缺失值、删除缺失值还是保留它们
  • 分类变量编码:将分类变量(如性别、学校类型等)转换为数值型,可以使用独热编码(One-Hot Encoding)或标签编码(Label Encoding)。
  • 特征选择:根据之前的描述性统计和相关性分析,选择对考试成绩影响最大的特征。
  • 数据标准化/归一化:将所有特征缩放到相同的范围,以避免某些特征对模型的影响过大。

2: 模型选择

  • 选择合适的机器学习算法。对于回归问题,常见的算法包括线性回归、决策树、随机森林、梯度提升机(如XGBoost)等。
  • 可以使用交叉验证来评估模型的性能。

3: 模型训练与评估

  • 将数据集分为训练集和测试集。
  • 使用训练集训练模型,并使用测试集评估模型的性能。
  • 使用适当的评估指标,如均方误差(MSE)、决定系数(R²)等。

4: 模型调优

  • 根据模型在测试集上的表现,调整模型的参数,以提高模型的预测能力。
  • 可以使用网格搜索(Grid Search)或随机搜索(Random Search)来寻找最优参数。

5: 模型部署

  • 一旦模型性能满意,可以将模型部署到实际应用中,用于预测新学生的考试成绩。

1:数据预处理

随机森林(Random Forest)和梯度提升树(Gradient Boosting Tree)在一定程度上可以从数值变量的标准化中受益,但通常不是严格必需的。

X = df.drop('Exam_Score', axis=1)
y = df['Exam_Score']categorical_cols = X.select_dtypes(include=['object', 'category']).columnsX_encoded = pd.get_dummies(X, columns=categorical_cols, drop_first=True)scaler = StandardScaler()X_numeric = X_encoded.select_dtypes(include=['int', 'float'])X_scaled = scaler.fit_transform(X_numeric)X_scaled_df = pd.DataFrame(X_scaled, columns=X_numeric.columns)X_scaled_df

由于数据集包含分类特征,我们需要对这些特征进行编码,使其能够被机器学习模型所使用。通常,我们可以使用独热编码(One-Hot Encoding)或标签编码(Label Encoding)来处理分类特征。在这个例子中,我们将使用独热编码来处理所有的分类特征。且对数值特征进行标准化。

在对数值特征进行标准化以及对分类特征进行了独热编码之后,生成了一个新的特征矩阵 X_encoded。现在我们可以继续进行特征工程和模型选择。

由于数据集的特征较多,我们可能需要进行特征选择来提高模型的性能。一种常见的方法是使用基于树模型的特征重要性来选择最重要的特征。在这里,我们可以使用随机森林作为基模型来进行特征选择。让我们使用随机森林模型来确定特征的重要性,并选择最重要的特征。

from sklearn.ensemble import RandomForestRegressor
from sklearn.feature_selection import SelectFromModelrf = RandomForestRegressor(n_estimators=100, random_state=42)rf.fit(X_encoded, y)selector = SelectFromModel(rf, threshold='median')X_selected = selector.transform(X_encoded)selected_features = X_encoded.columns[selector.get_support()]selected_features.tolist()

我们已经使用随机森林模型选择了以下最重要的特征:

  • Hours_Studied
  • Attendance
  • Sleep_Hours
  • Previous_Scores
  • Tutoring_Sessions
  • Physical_Activity
  • Parental_Involvement_Low
  • Parental_Involvement_Medium
  • Access_to_Resources_Low
  • Family_Income_Low
  • Peer_Influence_Positive
  • Parental_Education_Level_High School
  • Parental_Education_Level_Postgraduate

现在我们可以使用这些特征来训练我们的集成学习模型。在这里,我们将使用随机森林和梯度提升树(Gradient Boosting Tree)两种集成学习方法,并比较它们的性能。

2:随机森林与梯度提升树

首先,我们将数据集分为训练集和测试集,然后分别在训练集上训练两个模型,并在测试集上评估它们的性能。

from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.ensemble import GradientBoostingRegressor
import numpy as npX_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=42)rf = RandomForestRegressor(n_estimators=100, random_state=42)
gbt = GradientBoostingRegressor(n_estimators=100, random_state=42)rf.fit(X_train, y_train)
gbt.fit(X_train, y_train)rf_pred = rf.predict(X_test)
gbt_pred = gbt.predict(X_test)rf_mse = mean_squared_error(y_test, rf_pred)
gbt_mse = mean_squared_error(y_test, gbt_pred)rf_mse, gbt_mse

我们已经训练了随机森林和梯度提升树模型,并在测试集上评估了它们的性能。以下是两个模型的均方误差(MSE):

  • 随机森林(Random Forest)的MSE: 6.51
  • 梯度提升树(Gradient Boosting Tree)的MSE: 5.11

从结果来看,梯度提升树模型的性能略优于随机森林模型。这意味着梯度提升树模型可能更好地捕捉了数据中的模式和关系。

3:交叉验证

from sklearn.model_selection import cross_val_scorerf_scores = cross_val_score(rf, X_selected, y, scoring='neg_mean_squared_error', cv=5)
gbt_scores = cross_val_score(gbt, X_selected, y, scoring='neg_mean_squared_error', cv=5)rf_mse_cv = -rf_scores.mean()
gbt_mse_cv = -gbt_scores.mean()rf_mse_cv, gbt_mse_cv

分别求出随机森林与梯度提升树的交叉验证cv值分别约为6.41和5.52。

这段代码使用了Python的scikit-learn库来进行机器学习模型的交叉验证评分:

from sklearn.model_selection import cross_val_score

这里导入了cross_val_score函数,它用于执行交叉验证并计算模型的性能指标。

随机森林模型的交叉验证:

rf_scores = cross_val_score(rf, X_selected, y, scoring='neg_mean_squared_error', cv=5)
  • rf 是一个随机森林回归模型,它已经被实例化并准备好用于评分。
  • X_selected 是特征矩阵,包含了用于训练模型的数据。
  • y 是目标变量,即我们试图预测的值。
  • scoring='neg_mean_squared_error' 表示评分标准是负的均方误差(MSE)。在scikit-learn中,某些评分标准会被最大化,因此实际的MSE值被取反,以便使用最大化策略。
  • cv=5 表示交叉验证的折数,这里使用了5折交叉验证。

梯度提升树模型的交叉验证:

gbt_scores = cross_val_score(gbt, X_selected, y, scoring='neg_mean_squared_error', cv=5)
  • gbt 是一个梯度提升树(Gradient Boosting Tree)回归模型,它也已经被实例化。
  • 其他参数与随机森林模型的交叉验证相同。

计算交叉验证的平均MSE

rf_mse_cv = -rf_scores.mean()
gbt_mse_cv = -gbt_scores.mean()
  • 由于cross_val_score返回的是负的MSE值,所以在计算平均值时,需要再次取反以得到正的MSE值。
  • rf_scores.mean() 和 gbt_scores.mean() 分别计算了随机森林和梯度提升树模型在5折交叉验证中的平均MSE。
rf_mse_cv, gbt_mse_cv

最后,这段代码将输出随机森林和梯度提升树模型在交叉验证中的平均MSE值。这两个值可以用来比较两个模型的性能。

总结来说,这段代码的主要目的是通过5折交叉验证来评估随机森林和梯度提升树模型的性能,并比较它们在给定数据集上的均方误差。这种方法可以帮助我们了解模型在未知数据上的泛化能力。

在交叉验证中,cv值(交叉验证折数)的大小可以说明以下几个方面:

一、对模型评估的准确性和稳定性

较大的 cv 值(如 10 或更多)

优势:能更细致地评估模型在不同数据子集上的性能,使得模型评估结果更加准确和可靠。因为有更多不同的数据划分组合,模型会接触到更多不同的数据情况,从而更好地反映其在总体数据上的泛化能力。对于数据量较大的情况,较大的 cv 值可以充分利用数据,减少评估结果的方差,提供更稳定的性能估计。

劣势:计算成本较高。随着 cv 值的增加,需要进行更多次的模型训练和评估,这会显著增加计算时间和资源消耗。

较小的 cv 值(如 3 或 5)

优势:计算速度快,适用于数据量较小或者计算资源有限的情况。在一些快速迭代的场景中,可以更快地得到模型性能的初步评估,以便进行参数调整和模型改进。

劣势:评估结果可能不够准确和稳定。由于数据划分的组合较少,模型可能没有充分接触到不同的数据情况,导致评估结果的方差较大,不能很好地反映模型的真实泛化能力。

二、对数据的利用程度

较大的 cv 值:能够更充分地利用数据进行评估,因为每次划分时不同的数据子集被用作训练和验证,使得模型在不同的数据组合上进行学习和评估,从而更好地挖掘数据中的信息。然而,对于非常大的 cv 值,可能会导致每个折叠中的数据量过少,尤其是在数据总量有限的情况下,这可能会使模型在某些折叠上的训练不充分,影响评估的准确性。

较小的 cv 值:每个折叠中的数据量相对较多,模型在每个折叠上的训练相对更充分。但是,数据的利用程度相对较低,可能没有充分探索数据的多样性,导致评估结果可能不够全面。

三、适用场景

较大的 cv 值:适用于数据量较大、模型复杂度较高或者对评估准确性要求较高的情况。例如,在进行复杂的机器学习模型训练时,为了获得更可靠的性能评估,可以选择较大的 cv 值。当数据具有较高的多样性和复杂性时,较大的 cv 值可以更好地捕捉模型在不同数据情况下的表现。

较小的 cv 值:适用于数据量较小、计算资源有限或者需要快速得到模型评估结果的情况。例如,在进行初步的模型探索或快速迭代的实验中,较小的 cv 值可以节省计算时间,同时提供一个相对快速的性能评估。

4:集成学习

在机器学习中,集成学习是一种强大的技术,它通过结合多个模型来提高预测性能。对于随机森林和梯度提升树这两种模型,我们可以采用几种不同的集成策略:

模型融合(Model Blending)

  • 这是一种简单的集成方法,它涉及训练多个模型并将它们的预测结果以加权平均或投票的方式进行合并。
  • 例如,我们可以给随机森林和梯度提升树分配不同的权重,然后根据这些权重对它们的预测结果进行加权平均。

堆叠(Stacking)

  • 堆叠是一种分层模型集成技术,它首先使用多个不同的模型进行预测,然后使用另一个模型(通常是一个逻辑回归模型)来学习如何最好地结合这些预测。
  • 在堆叠中,每个模型的输出被用作第二层模型的输入。

混合(Ensemble by Weighting)

  • 这是一种为每个模型分配权重的方法,权重可以通过优化算法来确定,以最小化整个集成模型的预测误差。

超级学习器(Super Learner)

  • 超级学习器是一种特定的堆叠方法,它使用所有基本模型的预测以及真实标签来训练一个元模型,这个元模型用于生成最终的预测。
  • 超级学习器通常使用交叉验证来训练基本模型,并使用另一种交叉验证来训练元模型。

接下来,我们将选择堆叠(Stacking)作为集成策略。堆叠是一种分层模型集成技术,它首先使用多个不同的模型进行预测,然后使用另一个模型来学习如何最好地结合这些预测。

from sklearn.ensemble import StackingRegressor
from sklearn.linear_model import LinearRegressionstacking_regressor = StackingRegressor(estimators=[('rf', rf),('gbt', gbt)
], final_estimator=LinearRegression())stacking_regressor.fit(X_train, y_train)stacking_pred = stacking_regressor.predict(X_test)stacking_mse = mean_squared_error(y_test, stacking_pred)stacking_mse

得出均方误差(MSE)约为6.39。可以看出不一定集成学习比某单个模型的效果更好,但一般情况下集成学习比单个模型的预测效果较好。

想要探索多元化的数据分析视角,可以关注之前发布的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(笔记自用)位运算总结+LeetCode例题:颠倒二进制位+位1的个数

一.位运算总结: 在解题之前理解一下为什么需要位运算?它的本质是什么? 力扣上不少位运算相关的题,并且很多题也会用到位运算的技巧。这又是为什么? 位运算的由来 在计算机里面,任何数据最终都是用数字来表示的&…

[Linux]:信号(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 信号的阻塞 1.1 基本概念 信号被操作系统发送给进程之后,进程…

【Linux学习】基本指令其一

命令行界面 命令行终端是一个用户界面,允许用户通过输入文本命令与计算机系统进行交互。 比如Windows下, 键入winR,然后输入cmd,就可以输入文本指令与操作系统交互了。 Windows有另一个命令行界面Powershell,它的功能比cmd更强大…

电商ISV 电商SaaS 是什么

Independent Software Vendors的英文缩写,意为“独立软件开发商” 软件即服务(SaaS) 指一种基于云技术的软件交付模式 订阅收费 这些公司叫做ISV软件供应商,通过SaaS服务交付收费 为什么会有电商ISV 从商家角度划分:有独立品牌商家、大商…

微信支付的委托代扣功能服务如何申请开通?

扣款服务(原委托代扣服务,以下均用委托代扣)是微信支付旗下的重要产品 1、委托代扣是指商户取得用户的扣款授权后,向微信支付发起从用户账户扣款至商户账户的扣款指令,微信支付无需验证用户的支付密码,即可…

记录一下,Vcenter清理/storage/archive空间

一、根因 vpostgres:这个目录可能包含与 vCenter Server 使用的 PostgreSQL 数据库相关的归档文件过多,导致空间被占用。 二、处理过程 1、SSH登陆到Vcenter. 2、df -Th **图中可以看到 /storage/archive 使用占比很高。 /storage/archive 目录通常用…

fiddler抓包06_抓取https请求(chrome)

课程大纲 首次安装Fiddler,抓https请求,除打开抓包功能(F12)还需要: ① Fiddler开启https抓包 ② Fiddler导出证书; ③ 浏览器导入证书。 否则,无法访问https网站(如下图&#xff0…

Qt优秀开源项目之二十三:QSimpleUpdater

QSimpleUpdater是开源的自动升级模块,用于检测、下载和安装更新。 github地址:https://github.com/alex-spataru/QSimpleUpdater QSimpleUpdater目前Star不多(911个),但已在很多开源项目看到其身影,比如Not…

web网站的任意文件上传下载漏洞解析

免责申明 本文仅是用于学习检测自己搭建的任意文件上传下载漏洞相关原理,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规内容【…

【D3.js in Action 3 精译_023】3.3 使用 D3 将数据绑定到 DOM 元素

当前内容所在位置: 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可视化最佳实践(下)1.4 本…

Three.js 3D人物漫游项目(中)

本文目录 前言最终效果展示1、人物添加阴影1.1 添加地板1.1.1 效果 1.2 模型castShadow1.2.1 效果 1.3 轨道控制器1.3.1 效果 2、创建建筑物2.1 代码2.2 效果 前言 在数字技术的浪潮中,三维图形渲染技术以其独特的魅力,正逐步渗透到我们生活的方方面面&a…

手机、平板电脑编程———未来之窗行业应用跨平台架构

一、平板编程优点 1. 便携性强 - 可以随时随地携带平板进行编程,不受地点限制,方便在旅行、出差或休息时间进行学习和开发。 2. 直观的触摸操作 - 利用触摸屏幕进行代码编辑、缩放、拖动等操作,提供了一种直观和自然的交互方式。 …

联想(lenovo) 小新Pro13锐龙版(新机整理、查看硬件配置和系统版本、无线网络问题、windows可选功能)

新机整理 小新pro13win10新机整理 查看硬件配置和系统版本 设置-》系统-》系统信息 无线网络问题 部分热点可以,部分不可以 问题:是因为自己修改了WLAN的IP分配方式为手动分配,导致只能在连接家里无线网的时候可以,连接其他…

Unity 高亮插件HighlightPlus介绍

主要是对官方文档进行了翻译(我做了一些补充和一些小的调整) 但是如果你只是想快速入门: Unity 高亮插件Highlight Plus快速入门-CSDN博客 注意:官方文档本身就落后实际,但对入门仍很有帮助,核心并没有较大改变,有的功能有差异,以实际为准.(目前我已校正了大部分差异,后续我…

vue3 自定义el-tree树形结构样式

这里样式设置主要用到了 windcss 实现效果 模拟数据 这里也可以用模拟的数据,下面用的是后端请求的真实数据 [{"id": 5,"rule_id": 0,"status": 1,"create_time": "2019-08-11 13:36:09","update_time": "…

微信小程序拨打电话点取消报错“errMsg“:“makePhoneCall:fail cancel“

问题:微信小程序中拨打电话点取消,控制台报错"errMsg":"makePhoneCall:fail cancel" 解决方法:在后面加上catch就可以解决这个报错 wx.makePhoneCall({phoneNumber: 181********}).catch((e) > {console.log(e) //用…

金钥匙系列:Kubernetes (K8s) 服务集群技术栈学习路线

维护Kubernetes (K8s) 服务集群是一个复杂且多层次的技术任务,涉及容器化技术、集群管理、网络、安全、监控等多个领域。为了成为一名优秀的K8s集群维护工程师,技术栈需要广泛且深入。本文将为你详细介绍从零开始到深入掌握K8s集群维护的职业技术栈学习路…

在MAC中Ollama开放其他电脑访问

ollama安装完毕后默认只能在本地访问,之前我都是安装其他的软件之后可以结合开放其他端口访问,其实是可以新增或修改下电脑的系统配置,就可以打开端口允许除本机IP或localhost访问。 步骤如下: 1、查看端口(默认是&…

使用 Anaconda 环境在Jupyter和PyCharm 中进行开发

目录 前言 一、在特定环境中使用jupyter 1. 列出所有环境 2. 激活环境 3. 进入 Jupyter Notebook 二、在特定环境中使用pycham 1. 打开 PyCharm 2. 打开设置 3. 配置项目解释器 4. 选择 Conda 环境 5. 应用设置 6. 安装所需库(如果需要) 总结 &#x1f3…

大模型爬虫—ScrapeGraphAI

大模型爬虫—ScrapeGraphAI 一、介绍 ScrapeGraphAI是一个网络爬虫 Python 库,使用大型语言模型和直接图逻辑为网站和本地文档(XML,HTML,JSON 等)创建爬取管道。 只需告诉库您想提取哪些信息,它将为您完成! scrapegraphai有三种主要的爬取管道可用于从网站(或本地文…