Advertisement

【Kaggle 学习笔记】| Intro to Machine Learning

阅读量:

本课程从数据导入开始,开始机器学习步骤的引导

基础的数据探索

复制代码
    # 读取数据
    melbourne_data = pd.read_csv(melbourne_file_path) 
    melbourne_data.describe()
    
    melbourne_data.columns # 标题目录
    melbourne_data = melbourne_data.dropna(axis=0) # 去除有丢失值的行
    
    
    python

构建简单的模型

复制代码
    # 选取X和y
    melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longtitude']
    X = melbourne_data[melbourne_features]
    y = melbourne_data.Price
    
    # 构建模型
    from sklearn.tree import DecisionTreeRegressor
    
    # 选择模型
    melbourne_model = DecisionTreeRegressor(random_state=1)
    
    # 模型拟合
    melbourne_model.fit(X, y)
    
    # 预测结果
    melbourne_model.predict(X.head())
    
    # 保存输出文件(这里的数据与上述代码中的数据不是同一个数据集,仅提供模板参考)
    output = pd.DataFrame({'Id': test_data.Id,
                       'SalePrice': test_preds})
    output.to_csv('submission.csv', index=False)
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/y92A6vs1TJIpeDi37jOSnFKgVq0a.png)

验证模型性能

复制代码
    rom sklearn.model_selection import train_test_split
    # 随机选出数据训练集、测试集
    train_X, val_X, train_y, val_y = train_test_split(X, y, random_state = 0) # 选择策略跟随机种子random_state有关
    
    melbourne_model = DecisionTreeRegressor()
    melbourne_model.fit(train_X, train_y)
    
    # 评价模型预测结果的好坏
    val_predictions = melbourne_model.predict(val_X)
    print(mean_absolute_error(val_y, val_predictions))
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/cjfMhDqpRSOGQXxA25lLHEyJtCaZ.png)

相关问题

复制代码
    from sklearn.metrics import mean_absolute_error
    from sklearn.tree import DecisionTreeRegressor
    
    # 设定一个求mae的函数
    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)
    
    # 通过网格搜索,来得到一个较好的叶子结点超参数,避免出现欠拟合或过拟合现象
    candidate_max_leaf_nodes = [5, 25, 50, 100, 250, 500]
    scores = {leaf_size: get_mae(leaf_size, train_X, val_X, train_y, val_y) for leaf_size in candidate_max_leaf_nodes}
    best_tree_size = min(scores, key=scores.get)
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/ByipAchOMKWDn4seI5ZkdHPRwSFa.png)

全部评论 (0)

还没有任何评论哟~