您的位置:首页 > 编程语言 > Python开发

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

2017-02-18 21:57 211 查看

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

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"


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐