Kaggle实战之sklearn学习

今天刚刚接触python机器学习之kaggle实战这本书,初步学习了python机器学习库之sklearn的基本运用,照葫芦画瓢的对书中代码进行了一定的编写运行,小小记录我学机器学习之路
主要是这对支持向量机 、朴素贝叶斯、k近邻、决策树 ,使用sklearn快速对其进行建模训练操作

一 支持向量机

这里不涉及具体的算法原理知识,主要是使用sklearn库函数进行构建训练网络

#使用sklearn中的手写数字识别数据集来进行操作
from sklearn.datasets import load_digits
digits = load_digits()# 加载数据集

digits数据集详细描述
我们可以看出,DESCR为手写数字数据集的详细描述,包含数据的大小,标签,类型等等诸多信息;data shape为(1797,64)意为共有1797张8*8的数字图片矩阵,存储时通常将其变为1d向量,虽然会损失一些2d图像方面的数据信息;同理images类似;target为对应手写数字数据矩阵的标签;target_names为所有的标签种类。

"""手写数据 分割"""
from sklearn.cross_validation import train_test_split # 该函数为数据切割函数
# 划分 数据的训练集和验证集
X_train,X_test,y_train,y_test = train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)

上面中,digits.data,digits.target很好理解,test_size为设置的切割比例,train_data 占75%,test_data 占 25%。

#数据预处理,标准化数据 
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC # 基于线性假设的支持向量机分类器 LinearSVC
ss = StandardScaler() # 初始化 标准化函数
X_train = ss.fit_transform(X_train)
X_test = ss.fit_transform(X_test)

#初始化线性假设的支持向量机分类器 LinearSVC 
lsvc = LinearSVC()

#训练 
lsvc.fit(X_train,y_train)

#利用训练好的模型对测试样本的数字类别进行预测,预测结果存储在变量y_predict中 
y_predict = lsvc.predict(X_test)

#使用模型自带的评估函数进行准确性测评 
accuracy = lsvc.score(X_test,y_test)
print('Accuracy of LinearSVC is :',accuracy)

#使用sklearn。metric里面的classification_report模块对预测结果做更加详细的分析
from sklearn.metrics import classification_report
print(classification_report(y_test,y_predict,target_names=digits.target_names.astype(str)))

这里写图片描述

同理下面就不在一个个叙述

二 朴素贝叶斯

"""朴素贝叶斯文本分类"""
#news 数据下载 
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset='all')

#手写数据 分割 
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25,random_state=33)

#从导入用于文本特征向量转化模块 
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer()
X_train = vec.fit_transform(X_train)
X_test = vec.transform(X_test)

#从 sklearn.naive_bayes导入朴素贝叶斯模型 
from sklearn.naive_bayes import MultinomialNB
mnb = MultinomialNB()
mnb.fit(X_train,y_train)
y_predict = mnb.predict(X_test)

from sklearn.metrics import classification_report
accuracy = mnb.score(X_test,y_test)
print('Accuracy of Naive_Bayes Classifier is :',accuracy)
print(classification_report(y_test,y_predict,target_names=news.target_names))

这里写图片描述

三 k近邻

from sklearn.datasets import load_iris   #  加载数据集
from sklearn.preprocessing import StandardScaler   # 数据预处理之 标准化
from sklearn.cross_validation import train_test_split  #切割数据
from sklearn.neighbors import KNeighborsClassifier  #  导入k近邻分类器,还有k近邻回归
from sklearn.metrics import classification_report  #  分类器性能指标
#加载花数据
iris = load_iris()
X_train,X_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.25,random_state=33)
#标准化数据
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.fit_transform(X_test)
#分类器初始化
knc =  KNeighborsClassifier()
knc.fit(X_train,y_train)
y_predict = knc.predict(X_test)
#打印结果
accuracy = knc.score(X_test,y_test)
print('Accuracy of K-nearest Neighbor Classifier is :',accuracy)
print(classification_report(y_test,y_predict,target_names=iris.target_names))

这里写图片描述

四 决策树

泰塔尼克数据

import pandas as pd # pandas大法
from sklearn.datasets import load_iris   #  加载数据集
from sklearn.preprocessing import StandardScaler   # 数据预处理之 标准化
from sklearn.cross_validation import train_test_split  #切割数据
from sklearn.tree import DecisionTreeClassifier  #  导入决策树分类器,还有k近邻回归
from sklearn.metrics import classification_report  #  分类器性能指标
from sklearn.feature_extraction import DictVectorizer  #  特征转换器
# 加载数据
titanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')
# 提取其中三种特征及标签
X = titanic[['pclass','age','sex']]
y = titanic['survived']
# 数据清洗,补充数据
X['age'].fillna(X['age'].mean(),inplace=True)
# 数据切割
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.25,random_state=33)
# 对训练数据和测试数据进行特征转换
vec = DictVectorizer(sparse=False)
X_train = vec.fit_transform(X_train.to_dict(orient='record'))
X_test = vec.fit_transform(X_test.to_dict(orient='record'))
# 初始化 决策树分类器
dtc = DecisionTreeClassifier()
# 训练
dtc.fit(X_train,y_train)
# 预测
y_predict = dtc.predict(X_test)
# 准确度
accuracy = dtc.score(X_test,y_test)
print(accuracy)
# 打印更加详细的分类性能
print(classification_report(y_test,y_predict,target_names=['died','survived']))

这里写图片描述

四 机器学习

"""集成学习"""
# 集成模型
import pandas as pd
from sklearn.datasets import load_iris   #  加载数据集
from sklearn.preprocessing import StandardScaler   # 数据预处理之 标准化
from sklearn.cross_validation import train_test_split  #切割数据
from sklearn.tree import DecisionTreeClassifier  #  导入决策树分类器,还有k近邻回归
from sklearn.metrics import classification_report  #  分类器性能指标
from sklearn.feature_extraction import DictVectorizer  #  特征转换器
titanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')

X = titanic[['pclass','age','sex']]
y = titanic['survived']

X['age'].fillna(X['age'].mean(),inplace=True)

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.25,random_state=33)
vec = DictVectorizer(sparse=False)
X_train = vec.fit_transform(X_train.to_dict(orient='record'))
X_test = vec.fit_transform(X_test.to_dict(orient='record'))
# 使用单一决策树进行模型训练以及预测分析
dtc = DecisionTreeClassifier()
dtc.fit(X_train,y_train)
dtc_y_predict = dtc.predict(X_test)

accuracy = dtc.score(X_test,y_test)
print('Accuracy of DecisionTreeClassifier is :',accuracy)

# 使用随机森林分类器进行集成模型的训练以及预测分析
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier()
rfc.fit(X_train,y_train)
rfc_y_pred = rfc.predict(X_test)

accuracy = rfc.score(X_test,y_test)
print('Accuracy of RandomForestClassifier is :',accuracy)

# 使用梯度提升决策树进行集成模型的训练以及预测分析
from sklearn.ensemble import GradientBoostingClassifier
gbc = GradientBoostingClassifier()
gbc.fit(X_train,y_train)
gbc_y_pred = gbc.predict(X_test)

accuracy = gbc.score(X_test,y_test)
print('Accuracy of GradientBoostingClassifier is :',accuracy)

这里写图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kaggle是一个非常适合初学者去实操实战技能的网站,它提供了各种机器学习项目供用户参与。通过在Kaggle上完成项目,你可以评估自己的得分和排名,从而更清楚地了解自己的能力水平。此外,Kaggle还提供了许多项目的教程,可以帮助你学习各种操作并逐步熟悉机器学习的实践。在平时的学习,我们更多地接触到的是理论知识,缺少实战的平台和项目练习。因此,通过在Kaggle上进行机器学习项目实战,你可以巩固自己的知识,并发现更多有用的技能。\[1\] 在Kaggle上,你可以找到各种机器学习项目,其包括房价预测项目。在这个项目,你可以使用各种机器学习算法来预测房价。例如,你可以使用sklearn的线性算法,它利用了BLAS算法库,具有高效率和性能优势。相比于集成算法,如GradientBoost等,线性算法的运行时间更短,例如在做CrossValidate和Lasso时只需要20秒左右,而集成算法需要约200~300秒左右。\[2\] 在进行机器学习项目实战时,你可以创建多个模型来进行比较和评估。常见的模型包括K近邻分类器(KNeighborsClassifier)、逻辑回归(LogisticRegression)、高斯朴素贝叶斯分类器(GaussianNB)、决策树分类器(DecisionTreeClassifier)、随机森林分类器(RandomForestClassifier)、梯度提升分类器(GradientBoostingClassifier)和支持向量机分类器(SVC)等。通过创建多个模型并进行比较,你可以找到最适合解决问题的模型。\[3\] #### 引用[.reference_title] - *1* *3* [机器学习实战——kaggle 泰坦尼克号生存预测——六种算法模型实现与比较](https://blog.csdn.net/yangshaojun1992/article/details/106314927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Kaggle机器学习实战总结](https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/78937265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值