机器学习常用python语句总结

来源:互联网 发布:php测试工具 编辑:程序博客网 时间:2024/05/01 11:34
# 导入pandas用于数据分析
import pandas as pd
# 导入numpy,并命名为 np
import numpy as np


# 利用pandas的read_csv模块传入数据文件地址,并返回数据(dataframe格式)保存到data,测试数据可同样读取或从中分割,见下面
data = pd.read_csv('../Datasets/Breast-Cancer/breast-cancer-train.csv') #地址可为路径
data = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')#地址可为URL
# 有时需要自己设定特征列表
column_names = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape', 'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']
data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', names = column_names )


#输出数据量和维度
data.shape
# 观察前几行数据确定数据种类,数字型,类别型甚至缺省值
data.head()


# 缺省值的处理
data = data.replace(to_replace = '?', value = np.nan)
##1.丢弃含缺省值样本
data = data.dropna(how = 'any')
##2.用平均值赋值
data.fillna(data.mean(), inplace=True)


# 查看数据的统计特性
data.info()


# 特征选择
X = data[['pclass', 'age', 'sex']]
y = data['survived']


# 从sklearn.model_selection中的train_test_split模块用于数据分割,随机25%做测试样本
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state = 33)


# 使用scikit-learn.feature_extraction中的特征转换器
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer(sparse=False)
# 转换特征后,凡是类别型的特征都单独剥离出来,独成一列特征,数值型的则保持不变
X_train = vec.fit_transform(X_train.to_dict(orient='record'))
X_test = vec.transform(X_test.to_dict(orient='record'))
print(vec.feature_names_)


# 检查样本的数量和类别分布
y_train.value_counts()
y_test.value_counts()


#有时需要标准化数据,使每个维度的特征数据方差为1,均值为0,使预测结果不会被某些维度过大的特征值而主导
# 从sklearn.preprocessing里导入StandardScaler

from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)


#使用不同的模型进行训练 .
***.fit(X_train, y_train)


#使用训练好的模型进行预测

y_predict = ***.predict(X_test)


# 从sklearn.metrics导入classification_report
from sklearn.metrics import classification_report
# 输出预测准确性
print('The Accuracy is :', ***.score(X_test, y_test))
# 输出更加详细的分类性能
print(classification_report(y_predict, y_test, target_names = ['died', 'survived']))



原创粉丝点击