阅读 57

scikit基础与机器学习入门(8) sklearn主要解决的三类问题——分类,回归和聚类

其实这篇没啥内容,就是在熟悉一下代码\((*^_^*)\)

分类模型的训练——以决策树为例

导入相关的库

import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn import datasets

处理数据集

digits = datasets.load_digits()
#从样本数据中选出2/3作为训练集,1/3个作为测试集,并打乱数据集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(digits.data,digits.target,
test_size = 1/3)

进行模型的导入和预测

from sklearn.tree import DecisionTreeClassifier
treeclf = DecisionTreeClassifier()
treeclf.fit(X_train,y_train)

评估数据集

treeclf.score(X_test,y_test)

聚类模型的训练

from sklearn.cluster import KMeans
clt = KMeans(n_clusters=3)
clt.fit(X)
# 得到每种元素的分类
print(clt.predict(X))
# 得到聚类的中心
print(clt.cluster_centers_)

降维模型的训练

PCA主成分分析(Principal Components Analysis)是最常使用的降维算法,其基本思想如下:将原先的n个特征用数目更少的m个特征取代,新特征是旧特征的线性组合,这些线性组合最大化样本方差,从而保留样本尽可能多的信息,并且m个特征互不相关。用几何观点来看,PCA主成分分析方法可以看成通过正交变换,对坐标系进行旋转和平移,并保留样本点投影坐标方差最大的前几个新的坐标。

通过PCA主成分分析,可以帮助去除样本中的噪声信息,便于进一步做回归分析。

导入相关的库和数据集

import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn import datasets
boston = datasets.load_boston()
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(boston.data,boston.target,
test_size = 1/3,random_state = 0)
(len(X_train),len(X_test))

标准化

# 特征极差标准化
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler(feature_range = (0,1))
scaler.fit(X_train)
X_train,X_test = scaler.transform(X_train),scaler.transform(X_test)

利用PCA进行降维

这里explained_variance_衡量的是各维度的方差

# 应用PCA进行降维
from sklearn.decomposition import PCA
pca = PCA(n_components=6)
pca.fit(X_train)
pca.explained_variance_
X_train_pca,X_test_pca = pca.transform(X_train),pca.transform(X_test)

对新数据进行处理

# 对降维后的数据进行回归分析
from sklearn.linear_model import ElasticNetCV
netreg = ElasticNetCV()
netreg.fit(X_train_pca,y_train)
netreg.predict(X_test_pca)
netreg.score(X_test_pca,y_test)

原文:https://www.cnblogs.com/xiaoyunbowen/p/15312561.html

文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐