目录
一、数据集
1.1 可用数据集
- sklearn
- kaggle
- UCI
1.2 Scikit - learn工具介绍
1、安装
pip3 install Scikit-learn==0.19.1
pip install scikit-learn
2、导入
import sklearn
3、实例
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 进行特征缩放(默认缩放为单位方差)
# scaler = StandardScaler()
# X_train = scaler.fit_transform(X_train)
# X_test = scaler.transform(X_test)
# 进行最大最小值缩放
from sklearn.preprocessing import MinMaxScaler
# feature_range:设置缩放后的值范围默认最小0 最大值1,
scaler = MinMaxScaler(feature_range=(0, 0.0000000000001))
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 训练机器学习模型
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier()
clf.fit(X_train, y_train)
# 预测测试集结果
y_pred = clf.predict(X_test)
# 输出模型准确率
print("模型准确率:", clf.score(X_test, y_test))
4、包含的内容
分类、回归、聚类、降维、模型选择、特征工程
- 分类、聚类、回归
- 特征工程
- 模型选择、调优
1.3 sklearn数据集
1、sklearn.datasets
加载获取流行数据集
- datasets.load_*() 获取小规模数据集,数据包含在databases里
- datasets.fetch_*(data_home=None) 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/
2、sklearn小数据集
- sklearn.datasets.load_iris() 加载并返回鸢尾花数据集
- sklearn.datasets.load_boston() 加载并返回波士顿房价数据集
3、sklearn大数据集
- sklearn.datasets.fetch_20newsgroups(data_home=None,subset='train')
- subset:'train'或者'test','all',可选,选择要加载的数据集
- 训练集的 '训练' ,测试集的‘测试’,两者的‘全部’
1.4 数据集的返回值
- datasets.base.Bunch(继承自字典)
- dict["key"] = values
- bunch.key = values
from sklearn.datasets import load_iris
def datasets_demo():
# 获取数据集
iris = load_iris()
print("鸢尾花数据集:\n",iris)
print("查看数据集描述:\n",iris["DESCR"])
print("查看特征值的名字:\n",iris.feature_names)
print("查看特征值:\n",iris.data,iris.data.shape)
return None
if __name__ == '__main__':
datasets_demo()
1.5 数据集的划分
训练数据:用于训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
训练集:70% 80% 75%
测试集:30% 20% 30%
- 训练集特征值 x_train
- 测试集特征值 x_test
- 训练集目标值 y_train
- 测试集目标值 y_test
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
def datasets_demo():
# 获取数据集
iris = load_iris()
# print("鸢尾花数据集:\n",iris)
# print("查看数据集描述:\n",iris["DESCR"])
# print("查看特征值的名字:\n",iris.feature_names)
# print("查看特征值:\n",iris.data,iris.data.shape)
# 数据集划分
# random_state=22 随机种子,因为随机种子是固定的,所以每次运行程序时都会得到相同的训练集和测试集
# 这对于代码的可重复性和调试非常有用
x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
print("训练集的特征值:\n",x_train,x_train.shape)
return None
if __name__ == '__main__':
datasets_demo()