我有一个机器学习算法,它涉及一系列步骤,例如清理数据、准备训练数据等。每个步骤都存储在 python 类的单独方法中。我想知道构建我的类的最佳实践方法是什么,以便在类实例化时自动执行这些步骤。
这是我所做的(代码是说明性的,但这种方法适用于真正的算法)。感觉有点笨重。有没有更优雅的方式?
class Kaggle():
"""
An algorithm
"""
def __init__( self ):
self.bar = 1
def step_one( self, some_text_data ):
self.bar = 1 ** 2
# Do some data cleaning
# return processed data
def step_two( self ):
foo = step_one(baz)
# do some more processing
def step_three( self ):
bar = step_two()
# output results
def run( self ):
self.step_one()
self.step_two()
self.step_three()
if __name__ == "__main__":
kaggle = Kaggle()
kaggle.run()
Run Code Online (Sandbox Code Playgroud) 我希望这不是一个多余的问题,但是我找不到合适的答案和教程。我目前正在学习数据科学,因此使用kaggle竞赛进行练习,使用jupyter笔记本来解决这些问题(因为在视觉上对我来说更具吸引力)。现在,我偶然发现了一个示例内核(请参阅:http : //nbviewer.jupyter.org/github/agconti/kaggle-titanic/blob/master/Titanic.ipynb#Data-Handling)在其代码之间使用注释,链接和插图提供更多背景信息。
有人知道如何在jupyter中写这样的评论和言论吗?如果是这样,您是否有在线资源可供我学习?
谢谢一群!
在此处使用来自 Kaggle 的 Wine Review 数据。我可以使用 value_counts() 按种类返回出现次数
但是,我正在尝试找到一种快速方法,将结果限制在出现多次的品种及其数量上。
尝试df.loc[df['variety'].value_counts()>1].value_counts()
并且df['variety'].loc[df['variety'].value_counts()>1].value_counts()
都返回错误。
结果可以变成一个 DataFrame 并在那里添加约束,但有些东西告诉我有一种更优雅的方式来实现这一点。
我正在学习plotly某人的代码,但是每次当我尝试运行特定代码来查看目标列以查看数据集的平衡程度时,都会弹出错误消息,并且会话会被中断。
弹出错误信息:
加载笔记本时发生错误:未捕获错误:“plotly”的脚本错误http://requirejs.org/docs/errors.html#scripterror
给我错误的代码
fig = px.histogram(
train_df,
x=target_column,
color=target_column,
color_discrete_sequence=px.colors.qualitative.G10,
)
fig.update_layout(
title_text='Target distribution', # title of plot
xaxis_title_text='Value', # xaxis label
yaxis_title_text='Count', # yaxis label
bargap=0.2, # gap between bars of adjacent location coordinates
paper_bgcolor=primary_bgcolor,
plot_bgcolor=primary_bgcolor,
)
fig.update_xaxes(
title='Target class',
categoryorder='category ascending',
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
访问文档后,我了解到这是与浏览器相关的错误,但我不明白如何防止它。我正在使用chrome浏览器和kaggle内核。
当我运行时,best_model = compare_models()CPU 内存负载巨大,而 GPU 却未得到利用。如何在 GPU 上运行setup()或compare_models()?PyCaret 中有内置方法吗?
我的目标是学习笔记本。它的召回率高达 97%,而我却在 F1 分数“流失的客户”77.9% 中苦苦挣扎。问题是笔记本使用LightGBM。我无法安装 LightGBM。
\n我尝试过的:
\npip install lightgbm-> 它抛出错误python setup.py egg_info did not run successfully.pip install wheel-> 现在它抛出错误python setup.py bdist_wheel did not run successfully.pip install Cmake,,pip install --upgrade pip setuptoolsbrew install libomp >错误仍然存在。完整错误
\n \xc3\x97 python setup.py bdist_wheel did not run successfully.\n \xe2\x94\x82 exit code: 1\n \xe2\x95\xb0\xe2\x94\x80> [80 lines of output]\n INFO:root:running bdist_wheel\n /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install …Run Code Online (Sandbox Code Playgroud) 我正在 Kaggle 服务器上运行 .ipynb 笔记本。
在第一个代码单元中,导入模块时,特别是来自 google.patches 的 cv2_imshow,如下所示,
from google.colab.patches import cv2_imshow
我收到此错误:
/opt/conda/lib/python3.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.
warn("IPython.utils.traitlets has moved to a top-level traitlets package.")
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/tmp/ipykernel_27/1840971195.py in <module>
18
19 # Display images using OpenCV
---> 20 from google.colab.patches import cv2_imshow # Importing cv2_imshow from google.patches to display images
21
22 # Ignore warnings
/opt/conda/lib/python3.7/site-packages/google/colab/__init__.py in <module>
24 from google.colab import _tensorflow_magics
25 from google.colab import …Run Code Online (Sandbox Code Playgroud) module attributeerror kaggle google-colaboratory python-traitlets
我正在使用Kaggle提供的Titanic数据集.我在数据框中有它,我想将"性别"列的大小写更改为小写.我正在使用以下代码
import pandas as pd
df = pd.read_csv('titanic.csv')
print dfFull['sex'].unique()
df.sex.str.lower()
#check if it worked
print df['sex'].unique()
Run Code Online (Sandbox Code Playgroud)
并尝试
df['sex'].str.lower()
但是当我跑步时,df['sex'].unique()我得到三个独特的价值观[male, female, Female].
为什么我的代码不会降低字符串的大小写并将其保存回数据帧,以便[male, female]从.unique方法中获取?
我是机器学习的新手,正在尝试Kaggle的森林覆盖预测比赛,但我很早就被挂了.运行下面的代码时出现以下错误.
Error in train.default(x, y, weights = w, ...) : final tuning parameters could not be determined In addition: There were 50 or more warnings (use warnings() to see the first 50)
# Load the libraries
library(ggplot2); library(caret); library(AppliedPredictiveModeling)
library(pROC)
library(Amelia)
set.seed(1234)
# Load the forest cover dataset from the csv file
rawdata <- read.csv("train.csv",stringsAsFactors = F)
#this data won't be used in model evaluation. It will only be used for the submission.
test <- read.csv("test.csv",stringsAsFactors …Run Code Online (Sandbox Code Playgroud) 试图学习一些东西,我正在搞乱Kaggle上的全球鲨鱼攻击数据库,我正试图找到使用lambda函数和字符串来填充字符串的最佳方法str.contains.
基本上任何字符串都包含一个短语,skin diving例如'skin diving for abalone',在data['Activity']列中我想用活动替换活动skin diving.(皮肤潜水有92种变种因此尝试使用lambda功能)
我可以使用返回一个布尔系列
data['Activity].str.contains('skin diving')
Run Code Online (Sandbox Code Playgroud)
但是如果这个条件成立,我不确定如何更改值
我的lambda函数= data.apply(lambda x: 'free diving' if x.str.contains('free diving))但我得到一个语法错误,我不熟悉lambda函数和pandas来做对,任何帮助将不胜感激.