《python机器学习及实践》书籍代码练习

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/zhouyelihua https://blog.csdn.net/zhouyelihua/article/details/55681805

采用线性模型对良/恶性乳腺癌肿瘤预测

import numpy as np
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import SGDClassifier
from sklearn.metrics import classification_report
#定义名字,为了,简单命名,第一列是序号,最后一列是输出
column_names=['sample code number','1','2','3','4','5','6','7','8','9','class']
#利用pandas从网上下载数据
data=pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data',names=column_names)
#删除丢失的不完整的数据
data=data.replace(to_replace='?',value=np.nan)
data=data.dropna(how='any')
data.shape
x_train,x_test,y_train,y_test=train_test_split(data[column_names[1:10]],data[column_names[10]],test_size=0.25,random_state=33)
y_train.value_counts()
ss=StandardScaler()
x_train=ss.fit_transform(x_train)
x_test=ss.fit_transform(x_test)
lr=LogisticRegression()
sgdc=SGDClassifier()
lr.fit(x_train,y_train)
lr_y_predict=lr.predict(x_test)
sgdc.fit(x_train,y_train)
sgdc_y_predict=sgdc.predict(x_test)
print "Accuracy of LR Classifier:",lr.score(x_test,y_test)
print classification_report(y_test,lr_y_predict,target_names=['Benign','Malignant'])
print "finish"

这里写图片描述

SVM对手写数字进行分类

from sklearn.datasets import load_digits
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
from sklearn.metrics import classification_report
digits=load_digits()
digits.data.shape
x_train,x_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)
y_train.shape
ss=StandardScaler()
x_train=ss.fit_transform(x_train)
x_test=ss.fit_transform(x_test)
lsvc=LinearSVC()
lsvc.fit(x_train,y_train)
y_predict=lsvc.predict(x_test)
print 'The Accuracy of Linear SVC is',lsvc.score(x_test,y_test)
print classification_report(y_test,y_predict,target_names=digits.target_names.astype(str))

这里写图片描述

朴素贝叶斯对新闻文本数据进行类别预测

from sklearn.datasets import fetch_20newsgroups
from sklearn.cross_validation import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report
news=fetch_20newsgroups(subset='all')
x_train,x_test,y_train,y_test=train_test_split(news.data,news.target,test_size=0.25,random_state=33)
vec=CountVectorizer()
x_train=vec.fit_transform(x_train)
x_test=vec.transform(x_test)
mnb=MultinomialNB()
mnb.fit(x_train,y_train)
print x_test.shape
print x_train.shape
y_predict=mnb.predict(x_test)
print 'The Accuracy of Naive Bayes Classifier is', mnb.score(x_test,y_test)
print classification_report(y_test,y_predict,target_names=news.target_names)

print "done"

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhouyelihua/article/details/55681805
今日推荐