kaggle菜鸟

编程入门 行业动态 更新时间:2024-10-06 14:32:59

kaggle<a href=https://www.elefans.com/category/jswz/34/1769734.html style=菜鸟"/>

kaggle菜鸟

kaggle菜鸟入门

kaggle上一个预测商品价格的featured级比赛,
描述:预测一个商品的价格
数据情况:
train_id or test_id - 训练数据和测试数据的id
name - 商品名称
item_condition_id - the condition of the items provided by the seller
category_name - 商品分类
brand_name –品牌名称
price - 价格
shipping -是否包邮
item_description - 商品描述
数据格式如下图:

一个大神的代码如下
代码:

#导入所需模块
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)from subprocess import check_output
print(check_output(["ls", "../input"]).decode("utf8"))# Any results you write to the current directory are saved as output.
import numpy as np
import pandas as pd
from sklearn.model_selection import KFold
from sklearn.linear_model import Ridge
from sklearn.pipeline import FeatureUnion
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.metrics import mean_squared_log_errorPATH="../input/"
#读文件
train = pd.read_csv(f'{PATH}train.tsv', sep='\t')
test = pd.read_csv(f'{PATH}test.tsv', sep='\t')
submiss= pd.read_csv(f'{PATH}sample_submission.csv', sep='\t')
#训练数据和测试数据一起处理
df = pd.concat([train, test], 0)
#训练数据的行数
nrow_train = train.shape[0]
#对价格进行处理
y_train = np.log1p(train['price'])
#准备测试数据的id
y_test=test['test_id']
#删除不需要处理的数据
df=df.drop(['price','test_id','train_id'],axis=1)
#对缺失值进行处理
df['category_name'] = df['category_name'].fillna('MISS').astype(str)
df['brand_name'] = df['brand_name'].fillna('missing').astype(str)
df['item_description'] = df['item_description'].fillna('No')
#数据类型处理
df['shipping'] = df['shipping'].astype(str)
df['item_condition_id'] = df['item_condition_id'].astype(str)
#文本处理
default_preprocessor = CountVectorizer().build_preprocessor()
def build_preprocessor(field):field_idx = list(df.columns).index(field)return lambda x: default_preprocessor(x[field_idx])vectorizer = FeatureUnion([('name', CountVectorizer(ngram_range=(1, 2),max_features=50000,preprocessor=build_preprocessor('name'))),('category_name', CountVectorizer(token_pattern='.+',preprocessor=build_preprocessor('category_name'))),('brand_name', CountVectorizer(token_pattern='.+',preprocessor=build_preprocessor('brand_name'))),('shipping', CountVectorizer(token_pattern='\d+',preprocessor=build_preprocessor('shipping'))),('item_condition_id', CountVectorizer(token_pattern='\d+',preprocessor=build_preprocessor('item_condition_id'))),('item_description', TfidfVectorizer(ngram_range=(1, 3),max_features=100000,preprocessor=build_preprocessor('item_description'))),
])
#传入数据集进行处理
X = vectorizer.fit_transform(df.values)
#处理后的训练数据
X_train = X[:nrow_train]
#处理后的测试数据
X_test = X[nrow_train:]#模型
model = Ridge(solver='auto',fit_intercept=True,alpha=0.5,max_iter=100,normalize=False,tol=0.05)
#训练
model.fit(X_train, y_train)
#测试
preds = model.predict(X_test)
#保存结果
test["price"] = np.expm1(preds)
test[["test_id", "price"]].to_csv("submission_ridge.csv", index = False)
... prompt'''

提交结果

更多推荐

kaggle菜鸟

本文发布于:2024-02-28 09:08:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768694.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:菜鸟   kaggle

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!