Day22 复习日

一、如何使用kaggle平台:

注册与个人资料

  1. 注册方式:可以通过邮箱、Google、Facebook 等方式注册。

  2. 个人资料完善:尽量完整填写个人资料。

竞赛板块

  1. 竞赛选择

    • 兴趣与能力匹配:根据自己的兴趣和实际数据分析能力选择竞赛。对于初学者,建议从一些入门级或小型竞赛开始,逐步积累经验;有一定基础后再挑战更具难度的竞赛。

    • 竞赛规则研读:在参与竞赛前,务必仔细阅读竞赛的规则,包括比赛时间节点(报名时间、提交结果截止时间、评审时间等)、评分标准、数据使用规定、是否允许组队等重要信息。违反竞赛规则可能导致取消参赛资格。

  2. 数据获取与使用

    • 数据下载:大部分竞赛的数据可以在竞赛页面直接下载,注意数据的存储和管理,确保数据的完整性和安全性。有些数据可能较大,要保证有足够的存储空间。

    • 数据合规:严格遵守竞赛规定的数据使用方式,不得私自分享、转卖竞赛数据,也不能在其他未经授权的场景中使用。

  3. 结果提交

    • 格式正确:按照竞赛要求的格式提交预测结果,通常是特定格式的 CSV 文件,要仔细核对文件的列名、数据类型等是否与要求一致。

    • 多次提交限制:注意竞赛对提交次数的限制,合理安排提交计划,先进行小范围的测试提交,确认无误后再正式提交最佳结果。

数据集板块

  1. 数据集查找与筛选:利用平台的搜索和筛选功能,根据关键词、数据类型、热门程度等条件查找你需要的数据集。同时,可以关注一些高评分、下载量多的优质数据集。

  2. 数据集使用合规:在使用他人上传的数据集时,要遵循数据集的许可协议,有些数据集可能有特定的使用限制和引用要求,务必遵守。

  3. 自己上传数据集:如果有合适的数据集想分享到平台,要确保数据的合法性和合规性,同时提供详细的数据描述、使用说明和许可协议等信息,方便他人使用。

代码板块

  1. 代码学习与参考:平台上有大量优秀的数据科学和机器学习代码可供学习参考。可以按照热门程度、点赞数等筛选高质量代码,学习其中的算法应用、数据处理技巧、模型优化方法等。

  2. 代码分享:分享自己的代码时,要确保代码的可读性和可复现性,添加必要的注释和说明,方便其他用户理解和使用。同时,要尊重自己的知识产权,选择合适的开源协议。

  3. 避免抄袭:严禁抄袭他人的代码作为自己的成果提交到竞赛或分享,这不仅违反平台规定,也违背学术和职业操守。

社区交流

  1. 参与讨论:积极参与竞赛和相关主题的讨论区,与其他参赛者交流想法、分享经验、解决遇到的问题。这有助于拓宽思路,获取新的灵感和方法。

  2. 尊重他人:在交流过程中,要尊重其他用户的观点和意见,避免发表攻击性、侮辱性或不恰当的言论,保持良好的社区氛围。

  3. 关注优秀用户:关注平台上一些知名的数据科学家、竞赛高手,他们的动态和分享往往能提供很多有价值的学习资源和行业见解。

其他注意事项

  1. 平台通知:及时查看平台发送的通知,包括竞赛相关的提醒、新消息、系统公告等,以免错过重要信息。

  2. 工具和环境:熟悉 Kaggle 提供的在线代码编辑器、Notebook 环境等工具,了解其功能和使用方法,提高工作效率。同时,也可以探索平台支持的各种编程语言和库,根据需求选择合适的工具进行数据分析和模型开发。

二、对下述比赛提交代码
https://www.kaggle.com/competitions/titanic/overview

titanic:

import pandas as pd

# 加载数据集
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
gender_submission = pd.read_csv('gender_submission.csv')

# 查看训练集基本信息
print('训练集基本信息:')
train_data.info()

# 查看训练集行数和列数
train_rows, train_columns = train_data.shape

if train_rows < 100 and train_columns < 20:
    # 短表数据(行数少于100且列数少于20)查看全量数据信息
    print('训练集全部内容信息:')
    print(train_data.to_csv(sep='\t', na_rep='nan'))
else:
    # 长表数据查看数据前几行信息
    print('训练集前几行内容信息:')
    print(train_data.head().to_csv(sep='\t', na_rep='nan'))

# 查看测试集基本信息
print('测试集基本信息:')
test_data.info()

# 查看测试集行数和列数
test_rows, test_columns = test_data.shape

if test_rows < 100 and test_columns < 20:
    # 短表数据(行数少于100且列数少于20)查看全量数据信息
    print('测试集全部内容信息:')
    print(test_data.to_csv(sep='\t', na_rep='nan'))
else:
    # 长表数据查看数据前几行信息
    print('测试集前几行内容信息:')
    print(test_data.head().to_csv(sep='\t', na_rep='nan'))

# 查看gender_submission基本信息
print('gender_submission基本信息:')
gender_submission.info()

# 查看gender_submission行数和列数
gs_rows, gs_columns = gender_submission.shape

if gs_rows < 100 and gs_columns < 20:
    # 短表数据(行数少于100且列数少于20)查看全量数据信息
    print('gender_submission全部内容信息:')
    print(gender_submission.to_csv(sep='\t', na_rep='nan'))
else:
    # 长表数据查看数据前几行信息
    print('gender_submission前几行内容信息:')
    print(gender_submission.head().to_csv(sep='\t', na_rep='nan'))
# 用中位数填充训练集和测试集的 Age 列
train_data['Age'].fillna(train_data['Age'].median(), inplace=True)
test_data['Age'].fillna(test_data['Age'].median(), inplace=True)

# 用中位数填充测试集的 Fare 列
test_data['Fare'].fillna(test_data['Fare'].median(), inplace=True)

# 用众数填充训练集的 Embarked 列
train_data['Embarked'].fillna(train_data['Embarked'].mode()[0], inplace=True)

# 删除训练集和测试集的 Cabin 列
train_data.drop('Cabin', axis=1, inplace=True)
test_data.drop('Cabin', axis=1, inplace=True)

# 将处理后的数据保存为新的 CSV 文件
train_data.to_csv('train_processed.csv', index=False)
test_data.to_csv('test_processed.csv', index=False)
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import RandomForestClassifier

# 对 Sex 和 Embarked 列进行编码
label_encoders = {}
for col in ['Sex', 'Embarked']:
    le = LabelEncoder()
    train_data[col] = le.fit_transform(train_data[col])
    test_data[col] = le.transform(test_data[col])
    label_encoders[col] = le

# 选择特征和目标变量
features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']
X_train = train_data[features]
y_train = train_data['Survived']
X_test = test_data[features]

# 构建随机森林模型并训练
rf_model = RandomForestClassifier(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)

# 使用模型对测试集进行预测
y_pred = rf_model.predict(X_test)

# 生成提交格式的 DataFrame
submission_df = pd.DataFrame({
    'PassengerId': test_data['PassengerId'],
    'Survived': y_pred
})

# 将提交结果保存为 CSV 文件
submission_df.to_csv('submission.csv', index=False)

@浙大疏锦行

你可能感兴趣的:(python打卡,机器学习,人工智能,python)