使用unsloth在kaggle上微调 DeepSeek R1

1 months ago 高效码农

在本教程中,我们将在 Hugging Face 的医疗思路链数据集上对模型进行微调DeepSeek-R1-Distill-Llama-8B。这个精简的 DeepSeek-R1 模型是通过在使用 DeepSeek-R1 生成的数据上对 Llama 3.1 8B 模型进行微调而创建的。它展示了与原始模型类似的推理能力。 如果您是 LLM 和微调的新手,我强烈建议您参加Python 中的 LLM 简介课程。 作者图片 DeepSeek R1 简介 中国人工智能公司 DeepSeek AI 已开源其第一代推理模型 DeepSeek-R1 和 DeepSeek-R1-Zero,它们在数学、编码和逻辑等推理任务上的表现可与 OpenAI 的 o1 相媲美。您可以阅读我们关于 DeepSeek R1 的完整指南以了解更多信息。 DeepSeek-R1-Zero DeepSeek-R1-Zero 是第一个完全使用大规模强化学习(RL) 而不是监督式微调 (SFT) 作为初始步骤进行训练的开源模型。这种方法使模型能够独立探索思路链(CoT) 推理、解决复杂问题并迭代优化其输出。然而,它面临着重复推理步骤、可读性差和语言混合等挑战,这些挑战会影响其清晰度和可用性。 DeepSeek-R1 DeepSeek-R1 的推出是为了通过在强化学习之前加入冷启动数据来克服 DeepSeek-R1-Zero 的局限性,为推理和非推理任务提供坚实的基础。 这种多阶段训练使模型能够在数学、代码和推理基准上实现与 OpenAI-o1 相当的最先进的性能,同时提高其输出的可读性和连贯性。 DeepSeek 蒸馏 除了需要大量计算能力和内存才能运行的大型语言模型外,DeepSeek 还引入了精简模型。这些更小、更高效的模型已经证明它们仍然可以实现出色的推理性能。 这些模型的参数范围从 1.5B 到 70B,保留了强大的推理能力,其中 DeepSeek-R1-Distill-Qwen-32B 在多个基准测试中的表现均优于 OpenAI-o1-mini。 较小的模型继承了较大模型的推理模式,展示了提炼过程的有效性。 来源:deepseek-ai/DeepSeek-R1 阅读DeepSeek -R1:功能、o1 比较、提炼模型等博客,了解其主要功能、开发过程、提炼模型、访问、定价以及与 OpenAI o1 的比较。[](https://www.datacamp.com/blog/deepseek-r1)[](https://www.datacamp.com/blog/deepseek-r1) 微调 DeepSeek R1:分步指南 要微调DeepSeek R1模型,您可以按照以下步骤操作: 1. 设置 对于这个项目,我们使用 Kaggle 作为我们的 Cloud IDE,因为它可以免费访问 GPU,而这些 GPU 通常比 Google Colab 中提供的 GPU 更强大。首先,启动一个新的 Kaggle 笔记本,并将您的 Hugging Face 令牌和 Weights & Biases 令牌添加为机密。 您可以通过导航到Add-onsKaggle …

Kaggle、Python数据可视化seaborn(六):自定义图表

5 years ago 高效码农

到目前为止,您已经学习了如何创建许多不同的图表类型。现在,再学习一些可以用来改变图表样式的快速命令。 你学到了什么? 由于决定如何最好地讲述数据背后的故事并不总是很容易,因此我们将图表类型分为三大类来帮助解决这个问题。 趋势——趋势被定义为变化的模式。 sns.lineplot-线状图最适合显示一段时间内的趋势,多条线可以用来显示多个组中的趋势。 关联 – 您可以使用许多不同的图表类型来理解数据中变量之间的关系。 sns.barplot– 条形图用于比较不同组对应的数量。 sns.heatmap– 热力图采用颜色的深浅、点的疏密以及呈现比重的形式。 sns.scatterplot – 散点图显示了两个连续变量之间的关系;如果用颜色标识,我们还可以显示与第三个分类变量的关系。 sns.regplot – 在散点图中包含一条回归线可以更容易地看到两个变量之间的任何线性关系。 sns.lmplot – 如果散点图包含多个颜色编码的组,此命令对于绘制多个回归线很有用。 sns.swarmplot – 分类散点图显示连续变量和分类变量之间的关系。 分布 – 我们可视化分布,以显示我们可以期望在变量中看到的可能值,以及它们的可能性。 sns.distplot – 直方图表示单个数值变量的分布。 sns.kdeplot – KDE图(或2D KDE图)显示了单个数值变量(或两个数值变量)的估计、平滑分布。 sns.jointplot – 此命令对于同时显示2D KDE图以及每个单独变量对应的KDE图非常有用。 改变风格 所有的命令都为每个图提供了一个漂亮的默认样式。但是,您可能会发现定制您的图的外观很有用,幸运的是,只需添加多一行代码就可以实现这一点! 与往常一样,我们需要从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 我们将使用与在前一个教程中创建折线图相同的代码。下面的代码加载数据集并创建图表。 # Path of the file to read spotify_filepath = "../input/spotify.csv" # Read the file into a variable spotify_data spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True) # Line chart plt.figure(figsize=(12,6)) sns.lineplot(data=spotify_data) 输出: <matplotlib.axes._subplots.AxesSubplot at 0x7f07838a9e10> 我们可以使用一行代码快速将图形的样式更改为不同的主题。 # Change the style of the figure to the …

Kaggle、Python数据可视化seaborn(五):直方图和密度图

5 years ago 高效码农

在本教程中,您将学习有关直方图和密度图的所有信息。 准备好笔记本 和往常一样,我们从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 选择一个数据集 我们将使用一个包含150种不同花的数据集,或来自三种不同鸢尾属的各50种花的数据集。 加载并检查数据 数据集中的每一行对应于不同的花。有四种测量方法:萼片的长度和宽度,以及花瓣的长度和宽度。我们也跟踪相应的物种。 # Path of the file to read iris_filepath = "../input/iris.csv" # Read the file into a variable iris_data iris_data = pd.read_csv(iris_filepath, index_col="Id") # Print the first 5 rows of the data iris_data.head() 输出: 直方图 假设我们想要创建一个直方图来查看鸢尾花的花瓣长度是如何变化的。我们可以用sns.distplot命令来做。 # Histogram sns.distplot(a=iris_data[‘Petal Length (cm)’], kde=False) 输出: /opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error …

Kaggle、Python数据可视化seaborn(四):散点图

5 years ago 高效码农

在本教程中,您将学习如何创建高级散点图。 准备好笔记本 和往常一样,我们从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 加载并检查数据 我们将使用一个(合成的)保险费用数据集,看看我们是否能理解为什么有些客户比其他人支付更多。 如果您愿意,您可以在这里阅读关于数据集的更多信息。 # Path of the file to read insurance_filepath = "../input/insurance.csv" # Read the file into a variable insurance_data insurance_data = pd.read_csv(insurance_filepath) 与往常一样,我们通过打印前五行来检查数据集是否正确加载。 insurance_data.head() 散点图 要创建简单的散点图,我们使用sns.scatterplot命令并指定以下值: 水平x轴(x = insurance_data [‘bmi’]),和 垂直y轴(y = insurance_data [‘charge’])。 sns.scatterplot(x=insurance_data[‘bmi’], y=insurance_data[‘charges’]) 输出: <matplotlib.axes._subplots.AxesSubplot at 0x7f19008afd68> 上面的散点图表明,体重指数(BMI)和保险费用正相关,而BMI较高的客户通常也倾向于支付更高的保险费用。 (这种模式是有道理的,因为高BMI通常与慢性疾病的高风险相关。) 要仔细检查此关系的强度,您可能希望添加回归线或最适合数据的线。 我们通过将命令更改为sns.regplot来完成此操作。 sns.regplot(x=insurance_data[‘bmi’], y=insurance_data[‘charges’]) 输出: /opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either …

Kaggle、Python数据可视化seaborn(三):柱状图和热力图

5 years ago 高效码农

现在您可以创建自己的折线图了,现在让我们学习更多的图表类型了! 顺便说一下,如果这是您第一次使用Python编写代码,那么您应该为到目前为止所完成的一切感到非常自豪,因为学习一项全新的技能从来都不是一件容易的事!如果您坚持使用微课程,您会注意到所有事情只会变得更简单(而您将构建的图表将会更令人印象深刻!),因为所有图表的代码都非常相似。像任何技能一样,随着时间的推移和重复,编码变得很自然。 在本教程中,您将了解柱状图和热力图。 准备好笔记本 和往常一样,我们从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 选择一个数据集 在本教程中,我们将使用来自美国交通部的数据集来跟踪航班延误。在Excel中打开这个CSV文件,会显示每个月的一行(其中1 = January, 2 = February等)和每个航空公司代码的一列。 每个记录显示不同航空公司和月份的平均到达延迟(以分钟为单位)(均为2015年)。 负数记录表示(平均)倾向于提前到达的航班。 例如,1月份美国航空公司的平均航班(航空公司代码:AA)迟到了大约7分钟,4月阿拉斯加航空公司的平均航班(航空公司代码:AS)提前大约3分钟到达。 加载数据 和前面一样,我们使用pd.read_csv命令加载数据集。 # Path of the file to read flight_filepath = "../input/flight_delays.csv" # Read the file into a variable flight_data flight_data = pd.read_csv(flight_filepath, index_col="Month") 您可能会注意到代码略短于我们在上一个教程中使用的代码。 在这种情况下,由于行标签(来自’Month’列)与日期不对应,因此我们不在括号中添加parse_dates = True。 但是,我们像以前一样保留前两个文本,以提供两者: 数据集的文件路径(在本例中为flight_filepath)和 将用于索引行的列的名称(在本例中,index_col =’Month’)。 检查数据 由于数据集很小,我们可以轻松地打印它的所有内容。这是通过编写只有数据集名称的一行代码来实现的 # Print the data flight_data 柱状图 假设我们想创建一个柱状图,显示精灵航空(航空公司代码:NK)航班的平均到达延迟,按月显示。 # Set the width and height of the figure plt.figure(figsize=(10,6)) # Add title plt.title("Average Arrival Delay for Spirit Airlines Flights, by Month") # Bar chart showing average arrival …

Kaggle、Python数据可视化seaborn(二):折线图

5 years ago 高效码农

现在您已经熟悉了编码环境,接下来学习如何制作自己的图表! 在本教程中,您将学习怎样用Python来创建专业的线形图。在接下来的练习中,您将使用您的新技能来处理真实世界的数据集。 准备好笔记本 我们首先设置编码环境。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 选择一个数据集 本教程的数据集是采用音乐流服务Spotify上的全球每日流行歌曲。 我们专注于2017年和2018年的五首流行歌曲: “Shape of You”, by Ed Sheeran “Despacito”, by Luis Fonzi “Something Just Like This”, by The Chainsmokers and Coldplay 4.”HUMBLE.”, by Kendrick Lamar “Unforgettable”, by French Montana 请注意,第一个出现的日期是2017年1月6日,与Ed Sheeran的《Shape of You》的发行日期相对应。而且,通过这个表格,你可以看到《Shape of You》在发行当天在全球被播放了12,287,078次。请注意,其他歌曲在第一行中缺少值,因为它们发布比较晚! 加载数据 正如您在上一篇教程中了解到的,我们使用pd.read_csv命令加载数据集。 # Path of the file to read spotify_filepath = "../input/spotify.csv" # Read the file into a variable spotify_data spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True) 运行上述两行代码的最终结果是,我们现在可以通过使用spotify_data访问数据集。 检查数据 我们可以使用您在上一个教程中学习的head命令打印数据集的前五行。 # Print the first 5 rows of the data spotify_data.head() 输出: 现在检查前五行是否与上面数据集的图像一致(从我们看到它在Excel中的样子时开始)。 空条目将显示为NaN,这是“Not a Number”的缩写。我们还可以通过做一个小的修改(其中.head()变成.tail())来查看数据的最后五行: # …

Kaggle、Python机器学习教程(六):随机森林

5 years ago 高效码农

介绍 决策树会让您很难做出决定。 一棵有很多树叶的深树将会过度拟合,因为每个预测都来自其叶子上只有少数房屋的历史数据。 但是叶子很少的浅树会表现不佳,因为它无法捕获原始数据中的那么多区别。 即使在今天,最复杂的建模技术也面临着欠装和过度装配之间的这种张力。 但是,许多模型都有聪明的想法,可以带来更好的性能。 我们将以随机森林为例。 随机森林使用许多树,并通过平均每个组件树的预测来进行预测。 它通常比单个决策树具有更好的预测准确性,并且与默认参数一起使用效果很好。 如果您继续建模,您可以学习更多具有更好性能的模型,但其中许多模型对获取正确的参数很敏感。 举例 您已经看过几次加载数据的代码。 在数据加载结束时,我们有以下变量: train_X val_X train_y val_y import pandas as pd # Load data melbourne_file_path = ‘melb_data.csv’ melbourne_data = pd.read_csv(melbourne_file_path) # Filter rows with missing values melbourne_data = melbourne_data.dropna(axis=0) # Choose target and features y = melbourne_data.Price melbourne_features = [‘Rooms’, ‘Bathroom’, ‘Landsize’, ‘BuildingArea’, ‘YearBuilt’, ‘Lattitude’, ‘Longtitude’] X = melbourne_data[melbourne_features] from sklearn.model_selection import train_test_split # 将数据拆分为训练和验证数据,用于功能和目标 # 拆分基于随机数生成器。 提供数值 # inndom_state参数保证我们每次都得到相同的分割 # 运行此脚本。 train_X, val_X, train_y, val_y = train_test_split(X, y,random_state = 0) from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_absolute_error forest_model = RandomForestRegressor(random_state=1) forest_model.fit(train_X, train_y) melb_preds = forest_model.predict(val_X) print(mean_absolute_error(val_y, melb_preds)) 我们构建一个随机森林模型,类似于我们如何在scikit-learn中构建决策树 …

Kaggle、Python机器学习教程(五):过拟合和欠拟合

5 years ago 高效码农

在这一步结束时,您将了解欠拟合和过度拟合的概念,并且您将能够应用这些想法使您的模型更准确。 尝试不同的模型 既然您有一种可靠的方法来测量模型精度,那么您可以尝试使用其他模型,并查看哪种模型可以提供最佳预测。但是你应该怎样选择模型? 您可以在scikit-learn的文档中看到决策树模型有很多选项(比您长期想要或需要的更多)。最重要的选项决定了树的深度。回想一下这个微课程的第一课,树的深度是衡量它在进行预测之前分裂的数量。这是一棵相对较浅的树 在实践中,树在顶层(所有房屋)和叶子之间有10个分裂并不罕见。随着树木越来越深,数据集被切成了更少房屋的树叶。如果树只有1个分割,则将数据分为2组。如果每组再次拆分,我们将获得4组房屋。再次拆分每个将创建8个组。如果我们通过在每个级别添加更多分组来保持组的数量翻倍,那么当我们到达第10级时,我们将拥有210组房屋。这是1024片叶子。 当我们将房屋分成许多树叶时,每片叶子中的房屋数量也会减少。拥有极少数房屋的树叶将做出与房屋实际值非常接近的预测,但它们可能会对新数据做出非常不可靠的预测(因为每个预测仅基于少数房屋)。 这是一种称为过度拟合的现象,其中模型几乎完美地匹配训练数据,但在验证和其他新数据方面表现不佳。另一方面,如果我们使树很浅,它不会将房屋分成非常不同的组。 在极端情况下,如果一棵树将房屋分成2或4,每个房屋仍然有各种各样的房屋。对于大多数房屋来说,结果预测可能相差甚远,即使在训练数据中也是如此(由于同样的原因,验证也会很糟糕)。当模型无法捕获数据中的重要区别和模式时,即使在训练数据中它也表现不佳,这称为欠拟合。 由于我们关注新数据的准确性,我们根据验证数据估计,我们希望找到欠拟合和过度拟合之间的最佳点。在视觉上,我们想要(红色)验证曲线的低点 举例 有一些控制树深度的替代方案,并且许多允许通过树的一些路线具有比其他路线更大的深度。 但是max_leaf_nodes参数提供了一种非常合理的方法来控制过度拟合与欠拟合。 我们允许模型生成的叶子越多,我们从上图中的欠拟合区域移动到过度拟合区域。 我们可以使用效用函数来帮助比较max_leaf_nodes的不同值的MAE分数: from sklearn.metrics import mean_absolute_error from sklearn.tree import DecisionTreeRegressor def get_mae(max_leaf_nodes, train_X, val_X, train_y, val_y): model = DecisionTreeRegressor(max_leaf_nodes=max_leaf_nodes, random_state=0) model.fit(train_X, train_y) preds_val = model.predict(val_X) mae = mean_absolute_error(val_y, preds_val) return(mae) 使用您已经看过的代码(以及您已经编写过的代码)将数据加载到train_X,val_X,train_y和val_y中。 # Data Loading Code Runs At This Point import pandas as pd # Load data melbourne_file_path = ‘../input/melbourne-housing-snapshot/melb_data.csv’ melbourne_data = pd.read_csv(melbourne_file_path) # Filter rows with missing values filtered_melbourne_data = melbourne_data.dropna(axis=0) # Choose target and features y = filtered_melbourne_data.Price melbourne_features = [‘Rooms’, ‘Bathroom’, ‘Landsize’, ‘BuildingArea’, ‘YearBuilt’, ‘Lattitude’, ‘Longtitude’] X = filtered_melbourne_data[melbourne_features] from sklearn.model_selection import train_test_split # split data …

Kaggle、Python机器学习教程(四):验证模型

5 years ago 高效码农

你已经建立了一个模型。 但它是否可用? 在本课程中,您将学习如何使用模型验证来衡量模型的质量。 测量模型质量是迭代改进模型的关键。 什么是模型验证 您将要评估您构建的几乎所有模型。在大多数(尽管不是全部)应用中,模型质量的相关度量是预测准确性。换句话说,模型的预测是否接近实际发生的情况。 在测量预测准确性时,许多人犯了一个大错误。他们使用他们的训练数据进行预测,并将这些预测与训练数据中的目标值进行比较。你会看到这种方法的问题以及如何在一瞬间解决它,但让我们先考虑一下我们如何做到这一点。 您首先需要将模型质量概括为可理解的方式。如果您比较10,000个房屋的预测和实际房屋价值,您可能会发现好的和坏的预测混合。查看10,000个预测值和实际值的列表将毫无意义。我们需要将其汇总为一个指标。 总结模型质量有许多指标,但我们将从一个称为平均绝对误差(也称为MAE)开始。让我们从最后一个单词error开始分解这个指标。 每个房子的预测错误是: error=actual−predicted 因此,如果房子花费150,000美元并且您预计它将花费100,000美元,那么错误就是50,000美元。 使用MAE指标,我们获取每个错误的绝对值。 这会将每个错误转换为正数。 然后我们取这些绝对误差的平均值。 这是我们衡量模型质量的标准。 用简单的英语,可以说是 On average, our predictions are off by about X. 要计算MAE,我们首先需要一个模型。 #!/usr/bin/python3 # -*- coding: utf-8 -*- import pandas as pd # Load data melbourne_file_path = ‘melb_data.csv’ melbourne_data = pd.read_csv(melbourne_file_path) # 过滤缺少价格值的行 filtered_melbourne_data = melbourne_data.dropna(axis=0) # 选择目标和功能 y = filtered_melbourne_data.Price melbourne_features = [‘Rooms’, ‘Bathroom’, ‘Landsize’, ‘BuildingArea’, ‘YearBuilt’, ‘Lattitude’, ‘Longtitude’] X = filtered_melbourne_data[melbourne_features] from sklearn.tree import DecisionTreeRegressor # 定义模型 melbourne_model = DecisionTreeRegressor() # Fit model melbourne_model.fit(X, y) print("首次样本内预测:", melbourne_model.predict(X.head())) print("实际目标值:", y.head().tolist()) 一旦我们有了模型,这就是我们计算平均绝对误差的方法: from sklearn.metrics import mean_absolute_error predicted_home_prices = melbourne_model.predict(X) print(mean_absolute_error(y, predicted_home_prices)) “样本内”分数的问题 我们刚刚计算的度量可以称为“样本内”得分。我们使用单个房屋“样本”来构建模型并对其进行评估。这是很糟糕的。 想象一下,在大型房地产市场,门颜色与房价无关。 但是,在用于构建模型的数据样本中,所有带绿色门的房屋都非常昂贵。该模型的工作是找到预测房价的模式,因此它将看到这种模式,它将始终预测绿色房屋的高价格。 …

Kaggle、Python机器学习教程(三):建立第一个机器学习模型

5 years ago 高效码农

选择建模数据 您的数据集有太多的变量,以至于您无法理解,甚至无法很好地打印出来。如何将如此庞大的数据压缩到您能够理解的程度? 我们先用直觉选择几个变量。稍后的课程将向您展示自动对变量进行优先排序的统计技术。 要选择变量/列,我们需要看到数据集中所有列的列表。这是通过DataFrame的columns属性完成的。 #!/usr/bin/python3 # -*- coding: utf-8 -*- import pandas as pd # 将文件路径保存到变量以便于访问 melbourne_file_path = ‘melb_data.csv’ melbourne_data = pd.read_csv(melbourne_file_path) print(melbourne_data.columns) 输出: Index([‘Suburb’, ‘Address’, ‘Rooms’, ‘Type’, ‘Price’, ‘Method’, ‘SellerG’, ‘Date’, ‘Distance’, ‘Postcode’, ‘Bedroom2’, ‘Bathroom’, ‘Car’, ‘Landsize’, ‘BuildingArea’, ‘YearBuilt’, ‘CouncilArea’, ‘Lattitude’, ‘Longtitude’, ‘Regionname’, ‘Propertycount’], dtype=’object’) # 墨尔本的数据有一些缺失的值(有些房子没有记录一些变量)。 # 我们将在后面的教程中学习如何处理缺失的值。 # 您的Iowa数据在您使用的列中没有缺失的值。 # 所以现在我们将采用最简单的方法,从数据中删除有空值的房屋。 # 现在不要太担心这个,尽管代码是: # dropna删除丢失的值(认为na是“不可用的”) # 通常情况下删除行,使用参数axis = 0,删除列的参数axis = 1,通常不会这么做,那样会删除一个变量。 melbourne_data = melbourne_data.dropna(axis=0) 有许多方法可以选择数据的子集。pandas微课程将更深入地介绍这些内容,但目前我们将重点介绍两种方法。 点符号,用来选择”预测目标” 选择列表中的一列,我们用它来作为“特性” 选择预测目标 您可以使用点符号来提取变量。 这一列存储在一个Series中,它大致类似于只有一列数据的DataFrame。 我们将使用点符号来选择我们想要预测的列,这称为预测目标。 按照惯例,预测目标称为y。 因此,我们需要在墨尔本数据中保存房价的代码是: y = melbourne_data.Price 选择特征 输入到我们模型中的列(后来用于进行预测)被称为“特征”。 在我们的例子中,那些将是用于确定房价的列。 有时,您将使用除目标之外的所有列作为要素。 目前,我们将构建一个只有少数功能的模型。 稍后您将看到如何迭代和比较使用不同功能构建的模型。 我们通过在括号内提供列名列表来选择多个功能。 该列表中的每个项目都应该是一个字符串(带引号)。 举例: melbourne_features = [‘Rooms’, ‘Bathroom’, ‘Landsize’, ‘Lattitude’, ‘Longtitude’] 按照惯例,这个数据称为X. X = melbourne_data[melbourne_features] 让我们使用describe方法和head方法快速查看我们将用于预测房价的数据,该方法显示前几行。 …

Kaggle、Python机器学习教程(二):数据探索

5 years ago 高效码农

使用Pandas熟悉您的数据 使用Pandas熟悉您的数据,机器学习项目的第一步都是熟悉数据。 你将使用Pandas库。 Pandas是科学家用于探索和操纵数据的主要工具。 大多数人在他们的代码中将pandas缩写为pd。 我们使用命令执行此操作 import pandas as pd Pandas库中最重要的部分是DataFrame。 DataFrame是一个二维的表结构。 这类似于Excel中的工作表或SQL数据库中的表。 对于您希望使用此类数据进行的大多数事情,Pandas都有强大的方法。 例如,我们将查看澳大利亚墨尔本的房价数据。 在动手练习中,您将相同的流程应用于新的数据集,该数据集在爱荷华州有房价。 示例(墨尔本)数据位于文件路径../input/melbourne-housing-snapshot/melb_data.csv。 我们使用以下命令加载和浏览数据: #!/usr/bin/python3 # -*- coding: utf-8 -*- import pandas as pd # 将文件路径保存到变量以便于访问 melbourne_file_path = ‘melb_data.csv’ # 读取数据并将数据存储在标题为melbourne_data的DataFrame中 melbourne_data = pd.read_csv(melbourne_file_path) # 打印墨尔本数据中的数据摘要 print(melbourne_data.describe()) 解释数据描述 结果显示原始数据集中每一列有8个数字。第一个数字count显示有多少行具有未丢失的值。 缺失值的产生有很多原因。例如,在调查一间只有一间卧室的房子时,不会收集第二间卧室的大小。我们将回到丢失数据的主题。 第二个值是平均值,也就是平均值。在此情况下,std是标准偏差,它度量值在数值上的分布情况。要解释最小值、25%、50%、75%和最大值,请设想将每一列从最低值排序为最高值。第一个(最小的)值是最小值。如果你在列表中查找四分之一,你会发现一个数字大于25%的值,小于75%的值。这就是25%的值(发音为“25%”)。第50和75百分位数的定义类似,最大值是最大的数字。 开始您的第一个编码练习

Kaggle、Python机器学习教程(一):模型的工作原理以及使用方法

5 years ago 高效码农

简介 讲师 丹贝克尔数据科学家Dan为财富100强中的6家公司提供数据科学咨询服务,并为Keras提供深度学习方面的帮助。他拥有计量经济学博士学位。